입력
출력
생각보다 단순한 문제였다!
문자를 바꿨을 때 원래 문자는 같지만 바뀐 문자는 다르거나
원래는 달랐지만 바뀐 문자가 같은 경우를 처리해주면 끝
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);
}
}