프로그래머스 최빈값 구하기 문제

Wuchang·2022년 12월 27일
0

코딩테스트

목록 보기
1/13

최빈값 구하기

코딩 초보인 나에겐 푸는데 시간이 굉장히 오래걸린 문제다.
배열의 최빈값을 배열로 받아오는 아이디어를 생각해 내는데 많은 시간을 갉아먹었지만, 아이디어를 생각해 낸 이후로는 금방 풀리는 문제였다.

    	for(int i = 0; i<array.length; i++) {
    			
    		arr[array[i]]++;
    	}

주어진 배열의 길이만큼 새로운 배열을 생성하고, 주어진 배열의 값 x가 불릴때마다 arr 배열의 x 행의 값을 ++ 해준다.

    	for(int i = 0; i<arr.length; i++) {
    		
    		if(arr[i]>max) {
    			max = arr[i];
    			x = i;
    		}
    	}
    	

arr for문으로 array 에서 최빈값 x와 최빈값의 불린 횟수 max 를 구해줄 수 있다.

마지막으로, 최빈값이 여러개면 -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;

위의 for문으로 최빈값이 겹칠 경우 count값을 ++ 해주고, 아래의 if문으로 count>1 일 경우 answer 는 -1 을 return 해준다.

profile
우창의 개발일지🐈

0개의 댓글