문제
https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
< 최빈값 구하기 >
문제 풀이 (Java)
import java.util.*;
class Solution {
public int solution(int[] array) {
int answer = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < array.length; i++) {
if (map.containsKey(array[i])) {
map.replace(array[i], map.get(array[i]) + 1);
} else {
map.put(array[i], 1);
}
}
ArrayList<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return map.get(o2) - map.get(o1);
}
});
if (list.size() > 1 && map.get(list.get(0)) == map.get(list.get(1))) {
answer = -1;
} else {
answer = list.get(0);
}
return answer;
}
}
HashMap을 사용하여 각 숫자가 몇 번 나왔는지 구한다. 자주 나오는 값 순으로 정렬한다. 만약 최빈값이 여러 개면 answer에 -1을 저장하고, 아니라면 answer에 최빈값을 저장하여 반환한다.

출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'🌞Algorithm > 🔥programmers' 카테고리의 다른 글
| [programmers] 등수 매기기 (0) | 2026.09.15 |
|---|---|
| [programmers] 다항식 더하기 (0) | 2026.09.14 |
| [programmers] OX퀴즈 (0) | 2026.09.10 |
| [programmers] 안전지대 (0) | 2026.09.09 |
| [programmers] 디펜스 게임 (0) | 2026.09.07 |