일반적 구현문제이지만, 생각해야할 부분이 조금 있어서 오래걸렸다.
비슷한 단어는 한글자를 빼거나 더하거나 수정해서 기준 문자열과 같아지면 되기 때문에 주어지는 문자열은 기준 문자열과 한글자 차이여야 한다.
주어진 문자열 + 1 = 기준 문자열 -> 두 단어의 같은 글자 = 주어진 문자열
주어진 문자열 - 1 = 기준 문자열 -> 두 단어의 같은 글자 = 기준 문자열
주어진 문자열 = 기준 문자열 -> 두 단어의 같은 글자 = 기준 문자열 - 1
의 조건이 성립하게 된다.
import java.util.*;
public class Main {
public static void main (String[]args) { //같으면 안댐. 비슷한거(한글자 더하거나 빼거나, 교체하거나) 즉, 기준단어 글자수 +-1까지만 허용
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
String input = scanner.next();
int[] alpha = new int[26];
for(int i=0; i<input.length(); i++){
alpha[input.charAt(i) - 'A']++;
}
int cnt = 0;
for(int test=1; test<n; test++){
String out = scanner.next();
int[] beta = alpha.clone();
int same = 0;
for(int i=0; i<out.length(); i++){
if(beta[out.charAt(i) - 'A'] > 0){
same++;
beta[out.charAt(i) - 'A']--;
}
}
if(out.length() == input.length()-1 && same == out.length())
cnt++;
else if(out.length() == input.length()){
if(same == input.length()-1 || same == input.length())
cnt++;
}
else if(out.length() == input.length()+1){
if(same == input.length())
cnt++;
}
}
System.out.print(cnt);
}
}