본문 바로가기

OJ

[BOJ] 1302 베스트셀러 (JAVA)

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

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

문자열은 어려워요

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.PriorityQueue;

public class Main {
    
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws Exception {

        HashMap<String, Integer> map = new HashMap<>();
        int N = Integer.parseInt(br.readLine());
        for (int i = 0; i < N; i++) {
            String input = br.readLine();
            if (map.containsKey(input)) {
                map.put(input, map.get(input) + 1);
            } else map.put(input, 1);
        }

        PriorityQueue<Set> pq = new PriorityQueue<>(((o1, o2) -> {
            if (o1.v == o2.v) return o1.k.compareTo(o2.k);
            return o2.v - o1.v;
        }));

        map.entrySet().forEach(set -> {
            pq.offer(new Set(set.getKey(), set.getValue()));
        });

        System.out.print(pq.poll().k);

    }

    static class Set {
        String k;
        int v;

        public Set (String k, int v) {
            this.k = k;
            this.v = v;
        }
    }

}

'OJ' 카테고리의 다른 글

[BOJ] 17609 회문 (JAVA)  (0) 2023.02.12
[BOJ] 5052 전화번호 목록 (JAVA)  (0) 2023.02.11
[BOJ] 1708 볼록 껍질 (JAVA)  (1) 2023.02.09
[BOJ] 9935 문자열 폭발 (JAVA)  (2) 2023.02.08
[BOJ] 7567 그릇 (JAVA)  (0) 2023.02.07