알고리즘/프로그래머스:LV00

[LV00] 최빈값 구하기

공또뤼 2023. 1. 18. 22:06
반응형

최빈값 구하기 (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)에 대해서 제대로 알게 된 것 같다.

반응형