
[문제]
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 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

~통과~
'알고리즘' 카테고리의 다른 글
| [우테코 프리코스] 3주차 회고 + 새로운 미션?! (0) | 2025.11.05 |
|---|---|
| 프로그래머스 알고리즘 (2) | 2025.06.24 |
| 프로그래머스 문제(JAVA) / 피자 나눠 먹기(2) (0) | 2025.06.23 |
| 알고리즘프로그래머스 문제(JAVA) / 분수의 덧셈 / 유클리드 호제법 (0) | 2025.06.18 |
| 프로그래머스 문제(JAVA) / 배열 두 배 만들기 (0) | 2025.06.16 |