-
프로그래머스 - 최빈값 구하기알고리즘 2024. 4. 6. 21:41
import java.util.*; class Solution { public int solution(int[] array) { int answer = 0; int frequency = 0; // 최대 빈도수 boolean overlap = false; // 중복여부 Map<Integer, Integer> map = new HashMap<>(); for(int num : array) { if(!map.containsKey(num)) map.put(num, 1); else { int cnt = map.get(num); map.put(num, cnt + 1); } } for(int key : map.keySet()) { if(frequency == map.get(key)) overlap = true; if(frequency < map.get(key)) { frequency = map.get(key); overlap = false; answer = key; } } return overlap ? -1 : answer; } }
Map을 이용해 입력받은 배열을 순회하면서 key를 원소로, value를 빈도수로 저장합니다.
다시 Map을 key로 순회하여 최대 빈도수를 비교해가면서 중복 여부를 보고 답을 반환합니다.
'알고리즘' 카테고리의 다른 글
프로그래머스 - 최소 직사각형 (0) 2024.04.12 프로그래머스 - 시저 암호 (0) 2024.04.11 프로그래머스 - 겹치는 선분의 길이 (0) 2024.04.06 프로그래머스 - 안전지대 (0) 2024.04.05 프로그래머스 - 다항식 더하기 (0) 2024.04.05