public class BaekJoon_14_1181 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(reader.readLine());
Set<String> hs = new HashSet<String>();
// 해쉬 셋을 이용한 중복 제거
for (int i = 0; i < n; i++) {
hs.add(reader.readLine());
}
String[] sarr = hs.toArray(new String[0]); // 리스트를 배열로
Arrays.sort(sarr, (e1, e2) -> {
if (e1.length() == e2.length()) {
return e1.compareTo(e2);
} else {
return e1.length() - e2.length();
}
});
// List<String> list = new ArrayList<String>(Arrays.asList(sarr)); // 배열을 리스트로
// Collections.sort(list, (e1, e2) -> {
// if (e1.length() == e2.length()) {
// return e1.compareTo(e2);
// } else {
// return e1.length() - e2.length();
// }
// });
for (String a : sarr) {
writer.write(a + "\n");
}
// for (String a : list) {
// writer.write(a + "\n");
// }
writer.close();
reader.close();
}
}
HashSet은 중복이 안됨. HashSet에 먼저 담고 배열이든 리스트든 변환한다.
'알고리즘' 카테고리의 다른 글
[알고리즘] 스도쿠 (백트래킹) : 백준 2580 자바 / 사람과 컴퓨터의 관점 (0) | 2020.09.10 |
---|---|
[알고리즘] N-Queen (백트래킹) (0) | 2020.09.02 |
[알고리즘] 계수 정렬 (Counting Sort) (0) | 2020.08.25 |
[알고리즘] 퀵 정렬 (Quick Sort) (0) | 2020.08.25 |
[알고리즘] 병합 정렬 (Merge Sort) (0) | 2020.08.25 |