https://www.acmicpc.net/problem/1181
package boj1181;
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));
List <String> str = new ArrayList<>();
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++){
str.add(br.readLine());
}
Collections.sort(str, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if (o1.length() == o2.length()) // 문자열 길이 같은경우
return o1.compareTo(o2);
return o1.length() - o2.length();
}
});
System.out.println(str.get(0));
for(int i = 1; i < N; i++){
if(!str.get(i).equals(str.get(i-1))){
System.out.println(str.get(i));
}
}
}
}
Comparator
길이를 오름차순으로 정렬해야하므로 o1이 o2보다 길이가 길면 양수가 나와 둘의 자리가 바뀌게한다.
길이가 같은 경우 compareTo로 비교한다.
중복은 무시하므로 같은건 출력하지 않도록 한다.