algorithm/문제 풀이

백준 1181번 (단어 정렬) 자바 Java11

ssoheeh 2021. 1. 2. 01:26

문제 : 단어 정렬

시간 제한 : 2 sec

메모리 제한 : 256 MB

 

 

 

 

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
33
34
35
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Set<String> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            set.add(sc.next());
        }
        int size = set.size();
        String[] word = new String[size];
        set.toArray(word);
        Arrays.sort(word, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return Integer.compare(o1.length(), o2.length());
            }
 
        });
        int j, len, len_temp; 
        for(int i=0; i<size; i++
        { len = word[i].length(); 
        for(j=i+1; j<size; j++
        { len_temp = word[j].length(); 
        if(len != len_temp) break; } 
        Arrays.sort(word, i, j); i=j-1; }
 
 
        for (int i = 0; i < size; i++) {
            System.out.println(word[i]);
        }
        sc.close();
    }
}
cs

 

배열 정렬 Comparator 생성해서 단어 길이 순으로 정렬