본문 바로가기

알고리즘

백준 1181 단어 정렬

알고리즘-boj1181

BOJ 1181, 단어 정렬

  1. 단어의 중복을 제거한다. -> Set 사용
  2. 단어를 사전 순으로 정렬한다. -> Collections.sort 사용
  3. 단어를 길이순으로 정렬한다. -> new Comparator 사용

 

3-1 단어 길이 순으로 정렬
  Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();
            }
        });
3-2 단어 길이 순으로 정렬 (lambda expressions)
   Collections.sort(list, (o1, o2) -> o1.length() - o2.length());
3-3 단어 길이 순으로 정렬(Comparator.comparingInt && List.sort)
list.sort(Comparator.comparingInt(String::length));

 


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Set<String> set = new HashSet<>();
        int size = Integer.parseInt(br.readLine());
        for (int i = 0; i < size; i++) {
            set.add(br.readLine());
        }
        List<String> list = new ArrayList<>(set);
        Collections.sort(list);
        list.sort(Comparator.comparingInt(String::length));

        for (String s : list) {
            System.out.println(s);
        }
    }
}

'알고리즘' 카테고리의 다른 글

BOJ 1620번, 나는야 포켓몬 마스터 이다솜  (0) 2019.02.04
BOJ 2501 약수구하기  (0) 2019.01.25
CodeForces, 1A. Theatre Square  (0) 2019.01.18
선택 정렬 selection sort  (1) 2018.12.18