BOJ - 1181

아이모·2022년 11월 21일
0

BOJ 길라잡이

목록 보기
2/9

1. 문제

https://www.acmicpc.net/problem/1181

2. 풀이

문자열 정렬 문제로 Comparator의 사용법을 알고 있냐를 묻는 문제로
Comparator의 사용법을 모른다면 풀기 어려우나 알고 있다면 바로 풀 수 있는 간단한 문제이다.

중복제거의 경우 set을 사용하거나 if문을 이용하는 방법이 있다.

import java.util.*;
import java.io.*;
public class Main1181 {
    public static void main(String[] args){
        Scanner sc =  new Scanner(System.in);
        int N = sc.nextInt();
        HashMap<String, Integer> alpha = new HashMap<>();
        for(int i = 0; i <N; i++){
            String text = sc.next();
            if(!alpha.containsKey(text))
                alpha.put(text, text.length());
        }
        String [] arr = alpha.keySet().toArray(new String[0]);
        Arrays.sort(arr, new Comparator<String>() {
            public int compare(String s1, String s2) {
                if (s1.length() == s2.length()) {
                    return s1.compareTo(s2);
                }
                else {
                    return s1.length() - s2.length();
                }
            }
        });
        for(String t : arr)
            System.out.println(t);

    }

}

3. 적용된 알고리즘

정렬

profile
데이터로 보는 실력

0개의 댓글