반응형

프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
이번에 풀 문제는 '최빈값'이다.
새롭게 푸는 문제라 과거 코드는 없다.
이번 문제는 짧고 요구사항이 정확해서 마음에 들었다.
코드
import java.util.*;
class Solution {
public int solution(int[] array) {
int answer = -1;
Map<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < array.length; i++) {
map.put(array[i], map.getOrDefault(array[i], 0)+1);
}
int max = Collections.max(map.values());
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
Integer key = entry.getKey();
Integer value = entry.getValue();
if(value == max) {
if(answer > -1) return -1;
answer = key;
}
}
return answer;
}
}
자료구조는 Map을 사용하였다.
map에 데이터를 넣을 때 중복 체크를하려고 한 순간
영한쓰의 자바 강의에서 getOrDefault()를 사용했던게 떠올라 이 메서드를 사용했다.
뭔가 모를 흡족함.
돈을 허투루 쓴게 아니구만!
이번 문제도 사무실 보안때문에 캡처본이 안올라가;;
점수를 캡처 못했다.
점수는 +3점을 받았다.
오늘도 즐거운 코딩!!!
반응형