백준 25631번 마트료시카 합치기 JAVA

YB·2025년 2월 23일

링크텍스트

설명

TreeMap을 사용해 각 숫자가 몇 번 등장했는지 확인한다. 가장 많이 등장한 숫자의 갯수는 남아있는 마트료시카의 갯수와 같다.
시간복잡도: O(NLogN), 공간복잡도: O(N)

코드

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

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

		int [] arr = new int[n];

		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i=0;i<n;i++){
			arr[i] = Integer.parseInt(st.nextToken());
		}

		TreeMap<Integer,Integer> hm = new TreeMap<>();

		for(int num : arr){
			hm.put(num, hm.getOrDefault(num, 0)+1);
		}

        int maxFreq = 0;
        int result = 0;

        for (int count : hm.values()) {
            if (count > maxFreq) {
                maxFreq = count;
                result = count;
            }
        }

		System.out.println(result);
	}
}

profile
안녕하세요

0개의 댓글