반응형
최빈값 구하기 (JAVA)
문제
풀이
내 기준 아직은 쉽지않아서 미루고 미루다가 결국 풀었던 문제다........
근데 아직까지 잘 모르겠다ㅠㅠㅠ 진짜 공부가 많이 필요함을 느낀다.. 생각이 잘 안된다고 해야하려나..
그래서 우선 다른 사람 풀이도 참고하고 더 공부를 해야겠다고 느꼈던 문제같다.
다른 사람의 풀이 :
import java.util.*;
class Solution {
public int solution(int[] array) {
int maxCount = 0;
int answer = 0;
Map<Integer, Integer> map = new HashMap<>();
for(int number : array) {
int count = map.getOrDefault(number, 0) + 1;
if(count > maxCount) {
maxCount = count;
answer = number;
}
else if(count == maxCount) {
answer = -1;
}
map.put(number, count);
}
return answer;
}
}
getOrDefault : 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드
map.getOrDefault(Object key, V DefaultValue)
매개변수 : 이 메서드는 두개의 매개변수를 허용
key : 값을 가져와야 하는 요소의 키
defaultValue : 지정된 키로 매핑된 값이 없는 경우 반환되어야 하는 기본값
반환값 : 찾는 key가 존재하면 해당 key에 매핑되어 있는 값을 반환하고, 그렇지 않으면 디폴트 값이 반환
-> 찾는 key가 존재한다면 찾는 key의 value를 반환하고, 없거나 null이면 default 값을 반환한다.
이번 기회에 한두번 사용해본 .getOrDefault(Object key, V DefaultValue)에 대해서 제대로 알게 된 것 같다.
반응형
'알고리즘 > 프로그래머스:LV00' 카테고리의 다른 글
[LV00] 문자 반복 출력하기 (0) | 2023.04.17 |
---|---|
[LV00] 짝수는 싫어요 (0) | 2023.01.18 |
[LV00] 중앙값 구하기 (0) | 2023.01.09 |
[ 프로그래머스 ] LV.0 분수의 덧셈 (0) | 2023.01.09 |
[ 프로그래머스 ] LV.0 분수의 덧셈 (0) | 2023.01.08 |