[BOJ] 1141 - 비슷한 단어

suhyun·2022년 7월 16일
0

백준/프로그래머스

목록 보기
22/81

문제 링크

1141-비슷한 단어

문제 설명

입력

  • 단어의 갯수(N)
  • N개의 단어

출력

  • 비슷한 단어의 갯수

문제 풀이

생각보다 단순한 문제였다!
문자를 바꿨을 때 원래 문자는 같지만 바뀐 문자는 다르거나
원래는 달랐지만 바뀐 문자가 같은 경우를 처리해주면 끝

import java.util.Scanner;

public class Code1411 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int cnt = 0;

        String[] words = new String[n];
        for (int i = 0; i < n; i++) {
            words[i] = sc.next();
        }

        for (int i = 0; i < n - 1; i++) {
            for (int j = i + 1; j < n; j++) {
                int[] tmp1 = new int[27];
                int[] tmp2 = new int[27];

                boolean check = true;
                for (int k = 0; k < words[i].length(); k++) {
                    int a = words[i].charAt(k) - 'a' + 1;
                    int b = words[j].charAt(k) - 'a' + 1;

					// 둘 중에 하나라도 이전에 같은 알파벳이 있는지 확인
                    if (tmp1[a] == 0 && tmp2[b] == 0) {
                        tmp1[a] = b;
                        tmp2[b] = a;
                    } 
                    // 문자가 겹치는게 나왔지만 같지 않아서 같은 단어 아님
                    else if (tmp1[a] != b) check = false;	
                }
                if (check) cnt++;
            }

        }
        System.out.println(cnt);

    }
}
profile
꾸준히 하려고 노력하는 편 💻

0개의 댓글