Baekjoon
백준 1181번 단어 정렬(Java)
백엔드 규니
2020. 1. 18. 05:46
728x90
반응형
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.*;
public class WordSort{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
HashSet<String> set = new HashSet<>();
int n = input.nextInt();
for (int i = 0; i < n; ++i) {
set.add(input.next());
}
ArrayList<String> list = new ArrayList<>(set);
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String v1, String v2) {
if(v1.length() > v2.length())
return 1;
else if(v1.length() < v2.length())
return -1;
else
return v1.compareTo(v2);
}
});
for(String s : list)
System.out.println(s);
}
}
|
Comparator 인터페이스를 이용해서 정렬의 기준을 재정의 했다. 길이가 짧은 순서대로 정렬을 하고 길이가 같다면 다시 두개를 비교해서 사전순으로 정렬하는 것이다.
https://devlog-wjdrbs96.tistory.com/68?category=830071
[JAVA]Array.sort 와 Collections.sort 의 차이
두개의 차이는 그냥 직관적으로도 정렬을 해주는 역할이고, Array.Sort는 배열을 정렬해주는 것이고 Collections.sort는 클래스의 객체를 정렬해주는 것이라고 생각이 든다. 파이썬에서는 sort가 있어서 너무 편했..
devlog-wjdrbs96.tistory.com
여기서 Comparator 과 Comparable 의 차이를 이해하고 문제를 풀어보자.
반응형