100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

컴퓨터공학/알고리즘

[알고리즘] 최빈값 구하기

dc-choi 2023. 10. 30. 09:11
반응형

문제 설명

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

제한사항

0 < array의 길이 < 100

0 < array의 원소 < 1000

내가 풀이한 방법

class Solution {
    public int solution(int[] array) {
        int[] index = new int[1000]; // 값별 개수를 구하기 위한 변수
        int rep = 0; // 중복여부
        int max = 0; // 최대값(최빈값)
        int answer = 0; // 결과값

        for (int i = 0; i < array.length; i++) {
            index[array[i]]++; // 값별 개수를 구한다.

            // 값별 개수의 최대값이 곧 최빈값이 됨.
            if (max < index[array[i]]) {
                max = index[array[i]];
                answer = array[i];
            }
        }

        for (int i : index) {
            if (i == max) rep++;
            if (rep > 1) answer = -1;
        }
        
        return answer;
    }
}
반응형

'컴퓨터공학 > 알고리즘' 카테고리의 다른 글

[알고리즘] 2차원으로 만들기  (1) 2023.11.09
[알고리즘] 약수 구하기  (0) 2023.11.08
[알고리즘] n의 배수 구하기  (0) 2023.11.07
[알고리즘] 개미 군단  (0) 2023.11.04
[알고리즘] 세균 증식  (1) 2023.10.31