접두사는 어떤 단어의 앞에 붙어 뜻을 첨가하여 하나의 다른 단어를 이루는 말을 이른다. 예: ‘맨주먹·덧버선·풋사과·군소리’ 등에서 ‘맨―’·‘덧―', '풋-', '군-' 따위
import java.util.*;
// 접두사 - 정렬 - S1
// indexOf는 특정 문자나 문자열이 있는지 없는지 검사하여 인덱스를 리턴하는 함수.
// 없으면 -1 반환
// 접두사는 어떠한 단어로 시작하는 단어면 접두사인거임
public class ex1141 {
static int n;
static String[] arr;
public static void solution(){
Arrays.sort(arr, new Comparator<String>() {
@Override // 길이 내림차순
public int compare(String o1, String o2) {
return Integer.compare(o2.length(),o1.length());
}
});
ArrayList<String> list = new ArrayList<>();
for(String s1 : arr){
if(list.size()==0){
list.add(s1);
}
boolean flag = true;
for(String s2 : list){
if(s2.indexOf(s1)==0) {
flag = false;
break;
}
}
if(flag) list.add(s1);
}
System.out.println(list.size());
}
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
n = sc.nextInt();
arr = new String[n];
for(int i=0; i<n; i++) {
arr[i] = sc.next();
}
solution();
}
}
중요 내용
1. s2.indexOf(s1) : s1이라는 문자열이 s2에 있는 위치 반환, 없으면 -1 리턴
2. 길이 내림차순 정렬
Arrays.sort(arr, new Comparator<String>() {
@Override // 길이 내림차순
public int compare(String o1, String o2) {
return Integer.compare(o2.length(),o1.length());
}
});