본문 바로가기

CodingTest/Java

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

728x90
반응형

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.

정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.

최빈값이 여러 개면 -1을 return 합니다.

 

제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000
class Solution {
    public int solution(int[] array) {
        int answer = 0;
        int[] count = new int[1000];
        
        for(int i=0; i<array.length; i++){
        	//array에 들어있는 원소(0~999까지) 갯수를 세어서 count 배열의 index에 맞게 저장
            count[array[i]]++;
        }
        
        int max = 0; // 최빈값의 count 횟수
        int max_index = 0; //최빈값
        
        for(int i=0; i<count.length; i++){
            if(count[i]>=max){
                max = count[i];
                max_index = i;
            }
        }
        
        int cnt = 0;
        
        //최빈값이 2개인지 확인
        for(int i=0; i<count.length; i++) {
            if(count[i] == max){
                cnt++;
            }
        }
        
        if(cnt>1) answer = -1;
        else answer = max_index;
        
        return answer;
    }
}
728x90
반응형