Java

[코딩 기초 문제] 최빈값 구하기

Song hyun 2025. 1. 8. 18:19
728x90
반응형

[코딩 기초 문제] 최빈값 구하기

 

 

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열 array가 매개변수로 주어질 때,
최빈값을 return 하도록 solution 함수를 완성해보세요.
최빈값이 여러 개면 -1을 return 합니다.

 

 

import java.util.Collections;
import java.util.HashMap;

class Solution {
    public int solution(int[] array) {
        HashMap<Integer, Integer> intArray = new HashMap<>();
        
        // 빈도 계산
        for (int num : array) {
            intArray.put(num, intArray.getOrDefault(num, 0) + 1);
        }

        // 최대 빈도 찾기
        int maxFrequency = Collections.max(intArray.values());
        int mostFrequent = -1;
        boolean duplicate = false;

        // 최대 빈도를 가진 원소 찾기
        for (int key : intArray.keySet()) {
            if (intArray.get(key) == maxFrequency) {
                if (mostFrequent != -1) {
                    duplicate = true; // 중복된 최대 빈도 값 확인
                    break;
                }
                mostFrequent = key;
            }
        }

        // 최대 빈도가 중복되었으면 -1 반환
        return duplicate ? -1 : mostFrequent;
    }
}
728x90
반응형