본문 바로가기

프로그래머스

코딩테스트 입문 - 최빈값 구하기

반응형

 1. 문제

*문제 원본은 '문제링크' 참고

 2. 학습 내용

1) HashMap 사용한 데이터 저장 및 조회

🔎 3. 작성 코드

import java.util.HashMap;
import java.util.Map;

class Solution {
    public int solution(int[] array) {
        Map<Integer, Integer> frequencyMap = new HashMap<>();
        // 키, 값 특징 이용하기 위해 HashMap 사용
        int maxFrequency = 0; // 최빈값 
        int multiFrequency = -1; // 최빈값 2개 이상일 경우 반환값

        for (int num : array) { // array 반복 순회
            int frequency = frequencyMap.getOrDefault(num, 0) + 1;
            frequencyMap.put(num, frequency);

            if (frequency > maxFrequency) {
                maxFrequency = frequency;
                multiFrequency = num;
            } else if (frequency == maxFrequency) {
                multiFrequency = -1;
            }
        }
        return multiFrequency;
    }
}
반응형