알고리즘

프로그래머스 문제(JAVA) / 최빈값 구하기

bang-dev 2025. 6. 20. 17:33

 

[문제]

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

 

[해석]

1. 값마다 횟수 저장하기.

2. 저장한 횟수들 비교하며 최빈값 변수 저장하기.

3. 횟수가 같다면 -1 출력하기.

 

[풀이]

import java.util.*;

class Solution {
    public int solution(int[] array) {
        int maxCount = 0;
        int answer = 0;
        Map<Integer, Integer> countMap = new HashMap<>();
        for(int number: array){
            int count = countMap.getOrDefault(number,0) + 1;
            
            //이 부분부터 바로바로 횟수와 최빈값 업데이트
            if(count > maxCount){
                maxCount = count;
                answer = number;
            } else if(count == maxCount){
                answer = -1;
            }
            countMap.put(number,count);
        }
        return answer;
    }
}

 

HashMap 사용하면서 최빈값 바로 추척 가능하다.

getOrDefault(number,0) 메서드
-> HashMap에서 키가 존재하면 그 값 반환하고, 그렇지 않다면 기본값(0)을 반환하는 메서드

여기에 1을 더해 저장할때 1을 더 더해서 변수에 값을 저장한다.

 

https://school.programmers.co.kr/learn/challenges/beginner?order=acceptance_desc

 

코딩테스트 입문 | 프로그래머스 스쿨

코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요!

school.programmers.co.kr

~통과~