🌞Algorithm/🔥programmers

[programmers] 최빈값 구하기

뿌야._. 2026. 9. 11. 10:43
문제
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