문자열 A와 B가 있다.
이 때, 문자 하나를 수정, 삭제, 변경해서 같은 문자열을 만든다.
예를 들어, ABC, ABCD 가 있다고 가정하자.
[A, B, C, D]에서 [A, B, C]를 빼주면 [D] 만 남는다. 즉 1개만 바꿔주면 된다.
하지만, [A, B, C]에서 [A, B, C, D]를 빼주면 [] 가 되어 변경을 안해줘도 된다고 판단한다.
따라서 이를 주의해서 로직을 작성해야 한다.
import java.util.*;
// 비슷한 단어
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String value = sc.next();
int answer = 0;
for(int i=1; i<n; i++){
String next = sc.next();
List<Character> list = new ArrayList<>();
if(next.length() > value.length()){
answer += check(next, value);
}
else{
answer += check(value, next);
}
}
System.out.println(answer);
}
public static int check(String bigOne, String smallOne){
List<Character> list = new ArrayList<>();
for(char c : bigOne.toCharArray()){
list.add(c);
}
for(char c : smallOne.toCharArray()){
list.remove(Character.valueOf(c));
}
if(list.size() <= 1){
return 1;
}
return 0;
}
}
'Algorithm > Practice' 카테고리의 다른 글
백준 - 탑 with JAVA (0) | 2023.11.15 |
---|---|
백준 - 내리막길 (1) | 2023.11.02 |
이코테 - 청소년 상어 with JAVA (0) | 2023.10.11 |
이코테 - 최종 순위 with JAVA (0) | 2023.10.08 |
이코테 - 행성 터널 with JAVA (1) | 2023.10.05 |