Algorithm/JAVA - BOJ

BOJ/백준 - 1181 단어 정렬 JAVA

ㅇㅇ잉 2021. 8. 11. 14:27

CompareTo()를 사용하면 사전순으로 단어가 정렬된다.

16번째 줄부터는 compare함수를 람다식으로 구현했다.

compare함수는 반환형이 int인데, 양수면 자리를 바꾸고 음수나 0이 반환되면 자리를 바꾸지 않는다.

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
public class Main {
 
    public static void main(String[] args) throws IOException {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
 
        int N = Integer.parseInt(br.readLine());
 
        String[] arr = new String[N];
 
        for(int i=0;i<N;i++){
            arr[i]=br.readLine();
        }
 
        Arrays.sort(arr, (String s1, String s2)->{
            if(s1.length()==s2.length())
                return s1.compareTo(s2);
            else return s1.length()-s2.length();
        });
 
        sb.append(arr[0]).append('\n');
        for(int i=1;i<N;i++){
            if(!arr[i].equals(arr[i-1]))
                sb.append(arr[i]).append('\n');
        }
 
        System.out.print(sb);
    }
}
 
cs