최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열
array
가 매개 변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해 보세요. 최빈값이 여러 개면 -1을 return 합니다.
- 0 <
array
의 길이 < 100- 0 ≤
array
의 원소 < 1000
array | result |
---|---|
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
class Solution {
public int solution(int[] array) {
int answer = 0, maxCount = 0;
int []count = new int[1000];
for(int i = 0; i < array.length; i++){
count[array[i]]++;
}
for(int i = 0; i < count.length; i++){
if(maxCount < count[i]){
answer = i;
maxCount = count[i];
}
}
for(int i = 0; i < count.length; i++){
if(maxCount == count[i] && answer != i)
answer = -1;
}
return answer;
}
}
💡
array
원소의 빈도를 기록할count
배열을 만들어 주고, array의 길이만큼 반복문을 돌리는데, 만약array[i]
가 3이라면count
배열의 3번째 인덱스에 +1을 해 주는 형식으로 빈도수를 저장해 주었다
💡 이후
count
의 길이만큼 반복문을 돌리며 최빈값의 빈도를 찾을 때마다 빈도는maxCount
에 넣어 주고, 최빈값은answer
에 넣어 주게 된다 최빈값이 여러 개가 아니라면 바로answer
을 리턴 하게 되겠지만, 만약에count
배열에maxCount
에 담긴 값과 같지만answer
에 담긴 값은 다르다면, 즉 최빈값의 빈도는 같지만 최빈값은 다르다면answer
에 -1을 넣어 리턴 하게 해 준다