[프로그래머스/자바] LV.0 최빈값 구하기

Wuchang·2023년 1월 5일
0

코딩테스트

목록 보기
2/13

풀이 및 리뷰

개인적으로 lv0 문제 중 가장 난이도가 높았던 문제중 하나였다.
빈도값을 카운트하는 int 배열을 만드는 아이디어를 가져오는데 시간이 오래 걸렸다...

class Solution {
    public int solution(int[] array) {
   	int[] arr = new int[1001];  //빈도수 받아줄 배열 생성
    	int max = 0;			//빈도수 가장 높은 값 생성
    	int answer = 0;
    	int x = 0;
    	int count = 0;
    	
    	for(int i = 0; i<array.length; i++) {
    			
    		arr[array[i]]++;	//arr[i]에 array 요소인i값 들어올때 자리마다 ++해준다
    	}
    	
    	for(int i = 0; i<arr.length; i++) {
    		
    		if(arr[i]>max) {	//arr 모든 자리에서 최빈값 max 구하기
    			max = arr[i];
    			x = i;			//최빈값인 max의 순서인 i값 대입
    		}
    	}
    	
        //최빈값이 둘 이상일경우 -1 return 해주기 위한 코드
    	for(int i = 0; i<arr.length; i++) {
    		if(arr[i] == max) {
    			count++;	
    		}
    	}
    	
		if(count>1) {
			answer = -1;
		} else answer = x;
    	
    	return answer;
    }
}
profile
우창의 개발일지🐈

0개의 댓글