백준 11652 카드 (Java,자바)

jonghyukLee·2022년 2월 19일
0

이번에 풀어본 문제는
백준 11652번 카드 입니다.

📕 문제 링크

❗️코드

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

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

        PriorityQueue<Long> pq = new PriorityQueue<>();
        for(int i = 0; i < N; ++i) pq.add(Long.parseLong(br.readLine()));

        int maxCnt = Integer.MIN_VALUE;
        int tmpCnt = 1;
        long answer = pq.peek();
        while(!pq.isEmpty())
        {
            long cur = pq.poll();
            while(!pq.isEmpty())
            {
                if(cur == pq.peek())
                {
                    tmpCnt++;
                    pq.poll();
                }
                else break;
            }
            if(maxCnt < tmpCnt)
            {
                maxCnt = tmpCnt;
                answer = cur;
            }
            tmpCnt = 1;
        }
        System.out.println(answer);

    }
}

📝 풀이

주어진 N개의 숫자 중 가장 많이 등장한 숫자를 출력하는 문제입니다.
우선순위 큐에 오름차순으로 입력된 모든 숫자를 담아주고, 순차적으로 개수를 카운트하여 가장 많은 숫자를 출력하면 해결할 수 있습니다.

📜 후기

오늘은 가벼운 정렬문제를 하나 풀어보았어요!

profile
머무르지 않기!

0개의 댓글