문제
문제점 해결
같은 이름은 하나만 남겨놓는다. → Set 사용
이름의 길이가 짧을수록 앞에 있고, 같은 길이면 사전 순으로 앞에 있다. → Comparator 사용
풀이
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int TC = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= TC; tc++) {
int N = Integer.parseInt(br.readLine());
Set<String> set = new HashSet<>();
for (int i = 0; i < N; i++) {
set.add(br.readLine());
}
List<String> list = new ArrayList<>(set);
Collections.sort(list, 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("#"+tc);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
}