최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array
가 매개변수로 주어질 때, 최빈값을 return
하도록 solution
함수를 완성해보세요. 최빈값이 여러 개면 -1을 return
합니다.
array | result |
---|---|
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
입출력 예 #1
[1, 2, 3, 3, 3, 4]에서 1은 1개, 2는 1개, 3은 3개, 4는 1개로 최빈값은 3입니다.
입출력 예 #2
[1, 1, 2, 2]에서 1은 2개, 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return
합니다.
입출력 예 #3
[1]에는 1만 있으므로 최빈값은 1입니다.
class Solution {
public int solution(int[] array) {
int answer = 0;
int[] ary = new int[1001];
//1번FOR문
for (int i=0; i < array.length; i++){
ary[array[i]]++;
}
int max = 0 ;
int max_index = 0 ;
//2번FOR문
for (int i = 0; i < ary.length; i++){
if(ary[i] > max){
max = ary[i];
max_index = i;
}
}
int count =0;
//3번FOR문
for (int i = 0; i < ary.length; i++){
if(ary[i] == max) count++;
}
if(count > 1){
return answer = -1;
}
answer = max_index;
return answer;
}
}
1번 FOR문
: array[i]
의 값에 맞는 any
배열 방에 넣음.2번 FOR문
: 가장 많이 나온 숫자의 값과 index값을 구함.3번 FOR문
: 최빈값의 값의 갯수가 몇개인지 확인함.if문
: 최빈값의 갯수가 2개 이상일때의 조건 서식.answer
: 최빈값을 가짐int[] ary = new int[array.length]
: 잘못된 코드임. 나올수 있는 모든 숫자의 크기는 정해져 있는 것을 이용하여 최대 수인 1000에 1을 더해서int[] ary = new int[1001]
를 사용함.