접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 하지만, {hello, hell}, {giant, gig, g}는 접두사X 집합이 아니다.
단어 N개로 이루어진 집합이 주어질 때, 접두사X 집합인 부분집합의 최대 크기를 출력하시오.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Set<String> set = new HashSet<>();
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
String temp = br.readLine();
set.add(temp);
}
String[] setArr = new String[set.size()];
int count = 0;
for (String s : set) {
setArr[count] = s;
count++;
}
int answer = 0;
for (int i = 0; i < setArr.length; i++) {
String temp1 = setArr[i];
boolean cond1 = true;
for (int j = 0; j < setArr.length; j++) {
if (i == j) continue;
String temp2 = setArr[j];
if (temp1.length() < temp2.length()) {
String temp3 = temp2.substring(0, temp1.length());
if (temp3.equals(temp1)) {
cond1 = false;
break;
}
}
}
if (cond1) {
answer++;
}
}
System.out.println(answer);
}
}
String[] setArr = set.toArray(new String[0]);