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

MorganKim·2022년 10월 28일
1

Programmers

목록 보기
12/79
post-thumbnail

문제

풀이 및 리뷰

진짜 정말 너무 오래 걸렸던 문제다...🫠 (무려 3일이나 걸림) 겨우 테스트 케이스를 통과해서 기쁜 마음으로 제출 후 채점을 했는데 런타임 오류 와장창... 구글링을 해도 Lv.0 이라 그런지 코드가 거의 안 나와서 개념 위주로 검색을 할 수 밖에 없었다.
처음에 테스트 케이스만 보고 0을 고려하지 않고 코드를 짰던 게 원인이었다. 그 부분을 수정하고, 최빈값이 여러 개인 경우 -1을 출력하는 부분을 수정했더니 드디어 100점이 나왔다. 100점 보고 너무 기뻐서 손으로 입까지 막았던ㅋㅋㅋㅋㅋ 기분 너무 좋다!

코드

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        int arr_max = 0;
        
        for (int i = 0; i < array.length; i++) {
            if (array[i] > arr_max) {
                arr_max = array[i];
            }
        }
        
        int[] count = new int[arr_max + 1];
        int max = 0;
        
        int n = 0;
        int mode = 0;
        
        for (int i = 0; i < array.length; i++) {
            count[array[i]]++;
        }
        
        for (int i = 0; i < count.length; i++) {
            if (count[i] > max) {
                max = count[i];
                answer = i;
            }
        }
        
        for (int i = 0; i < count.length; i++) {
            mode++;
            
            if (count[i] == max) {
                n++;
            }
        }
        
        if (n > 1) 
            answer = -1;
        
        return answer;
    }
}

1개의 댓글

comment-user-thumbnail
2022년 11월 2일

아옹... 예외테스트가 자꾸 걸려서 결국 이글을 보게됐는데
mode변수는 필요가 없네용 ㅋㅋ

답글 달기