[프로그래머스] 최빈값 구하기

The Flawless Bead·2023년 2월 15일
0

프로그래머스

목록 보기
13/20
post-thumbnail

🔗 문제로 이동 👉 [최빈값 구하기]



이 문제의 핵심은 크게 아래와 같이 볼 수 있다.

  1. 적절한 result 배열의 크기 지정하기

✅ 문제 풀이

처음 문제를 풀 때 result 선언을 new int[array.length+1]; 로 해줬더니 런타임 에러가 떴다.
문제를 다시 읽어보니 array 안의 숫자가 연속적이란 말이 없었다. (아무도 속인 사람이 없지만 나 혼자 속은 기분..) 그래서 result 의 크기를 array 의 원소 범위에 맞춰 선언해 주고 문제를 풀었더니 정답!

class Solution {
    
    public int solution(int[] array) {
        // 0 ≤ array의 원소 < 1000
        int[] result = new int[1000];
        if(array.length == 1) return array[0];
        
				// result 배열의 index에는 array의 정수, vaule에는 해당 정수의 count값을 넣어준다  
        for(int i = 0; i < array.length; i++) {
            result[array[i]] += 1;
        }

        int max = 0;
        int answer = 0;
        for(int i  = 0; i < result.length; i++) {
            if(max < result[i]) {
                max = result[i];
                answer = i;
            } else if(max == result[i]) {
                answer = -1;
            }
        }
        
        return answer;
    }
}

profile
오늘을 살고 내일을 꿈꾸는 낭만주의자

0개의 댓글