https://www.acmicpc.net/problem/1181
문자열 정렬 문제로 Comparator의 사용법을 알고 있냐를 묻는 문제로
Comparator의 사용법을 모른다면 풀기 어려우나 알고 있다면 바로 풀 수 있는 간단한 문제이다.
중복제거의 경우 set을 사용하거나 if문을 이용하는 방법이 있다.
import java.util.*;
import java.io.*;
public class Main1181 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
HashMap<String, Integer> alpha = new HashMap<>();
for(int i = 0; i <N; i++){
String text = sc.next();
if(!alpha.containsKey(text))
alpha.put(text, text.length());
}
String [] arr = alpha.keySet().toArray(new String[0]);
Arrays.sort(arr, new Comparator<String>() {
public int compare(String s1, String s2) {
if (s1.length() == s2.length()) {
return s1.compareTo(s2);
}
else {
return s1.length() - s2.length();
}
}
});
for(String t : arr)
System.out.println(t);
}
}
정렬