최대 1 분 소요



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



🔍 문제 풀이

이 문제는 TreeMap을 사용하면 간편히 구현 가능하다.

  • HashMap : 순서 보장 x
  • TreeMap : 키 기준 정렬
  • LinkedHashMap : 삽입된 순서 보장



💻 코드

[방법 1] TreeMap

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        TreeMap<String, Integer> treeMap = new TreeMap<>(); // TreeMap 사용 -> key 기준 자동 정렬

        int n = Integer.parseInt(br.readLine());
        for(int i=0; i<n; i++){
            String[] str = br.readLine().split("\\.");
            treeMap.put(str[1], treeMap.getOrDefault(str[1], 0) + 1 );
        }

        for(Map.Entry<String, Integer> entry : treeMap.entrySet()){
            System.out.println(entry.getKey() +  " " + entry.getValue());
        }
    }
}


[방법 2] HashMap

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        Map<String, Integer> map = new HashMap<>();

        int n = Integer.parseInt(br.readLine());
        for(int i=0; i<n; i++){
            String[] str = br.readLine().split("\\.");
            map.put(str[1], map.getOrDefault(str[1], 0) + 1 );
        }

        List<String> listKey = new ArrayList<>();
        for(String key:map.keySet()) listKey.add(key);
        Collections.sort(listKey);

        for(String k : listKey){
            int v = map.get(k);
            System.out.println(k + " " + v);
        }
    }
}


카테고리:

업데이트:

댓글남기기