알고리즘 풀이/백준

[백준][Java] 1181번 단어 정렬

배게 2018. 4. 21. 05:11
728x90


HashSet과 Arrays.sort라는 개념을 익혀야 쉽게 해결할 수 있습니다.

HashSet을 이용하여 중복된 값을 사전에 제거해주고

HashSet을 배열로 변환 후

그 배열을 문제에서 요구하는대로 

Arrays.sort 함수를 이용하여 

사전순으로 정렬, 길이순으로 정렬을 순서대로 해줍니다.


 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
31
32
import java.util.*;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		HashSet<String> hs = new HashSet<String>();
		int N = sc.nextInt();
		String[] alp;
		
		for(int i=0;i<N;i++) {
			hs.add(sc.next());
		}
		alp = new String[hs.size()];
		hs.toArray(alp);
		
		Arrays.sort(alp);
		Arrays.sort(alp, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				return Integer.compare(o1.length(), o2.length());
			}
		});
		
		for (String string : alp) {
			System.out.println(string);
		}
		
	}
}