-
백준 1181번 단어 정렬(Java)Baekjoon 2020. 1. 18. 05:46728x90반응형
https://www.acmicpc.net/problem/1181
123456789101112131415161718192021222324252627282930import 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>() {@Overridepublic int compare(String v1, String v2) {if(v1.length() > v2.length())return 1;else if(v1.length() < v2.length())return -1;elsereturn v1.compareTo(v2);}});for(String s : list)System.out.println(s);}}Comparator 인터페이스를 이용해서 정렬의 기준을 재정의 했다. 길이가 짧은 순서대로 정렬을 하고 길이가 같다면 다시 두개를 비교해서 사전순으로 정렬하는 것이다.
https://devlog-wjdrbs96.tistory.com/68?category=830071
여기서 Comparator 과 Comparable 의 차이를 이해하고 문제를 풀어보자.
반응형'Baekjoon' 카테고리의 다른 글
백준 2702번 초6 수학 (with Java) (0) 2020.02.17 백준 2164번 카드2 (Python, Java) (0) 2020.01.20 백준 뒤집힌 덧셈 1357번(Python, Java) (0) 2020.01.17 백준 베스트셀러 1302번(Python, Java) (0) 2020.01.15 백준 1157번 단어공부(Python, Java) (0) 2020.01.15