본문 바로가기

Algorithm/Practice

백준 - 비슷한 단어 with JAVA

 

 

 

문자열 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