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

김지현·2023년 9월 27일
1

알고리즘

목록 보기
4/7
post-thumbnail

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120812

분류

배열

풀이

import java.util.Arrays;

class Solution {
    public int solution(int[] arr) {
        int answer = arr[0], ans_cnt = 0, cnt = 1, l = arr.length;
        Arrays.sort(arr);
        
        // 배열을 순회하며 바로 이전 원소와 비교
        for(int i = 1; i < l; i++){
            if(arr[i] == arr[i - 1]) cnt++;     // 같을 경우 count
            else {                              // 다를 경우 최빈값인지 검사
                if(ans_cnt < cnt) {             // 최빈값이면 갱신
                    ans_cnt = cnt;             
                    answer = arr[i - 1];
                }
                else if(ans_cnt == cnt) answer = -1;   // 최빈값이 여러개인 경우 -1
                cnt = 1;
            }
        }
        
        // 마지막 원소 후처리
        if(ans_cnt < cnt) answer = arr[l - 1];
        else if(ans_cnt == cnt) answer = -1;    
        
        return answer;
    }
}

0개의 댓글