programmers
- 제한사항
0 < array의 길이 < 100
0 ≤ array의 원소 < 1000
- 입출력 예 설명
입출력 예 #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[] frequency = new int[1000];
int maxFrequency = 0;
// 각 숫자의 빈도를 계산
for (int num : array) {
frequency[num]++;
maxFrequency = Math.max(maxFrequency, frequency[num]);
}
// 최빈값이 여러 개 있는지 확인
int maxValCount = 0;
int maxVal = -1;
for (int i = 0; i < frequency.length; i++) {
if (frequency[i] == maxFrequency) {
maxValCount++;
maxVal = i;
if (maxValCount > 1) {
return -1; // 최빈값이 여러 개면 -1 반환
}
}
}
// 최빈값이 하나만 있으면 그 값을 반환
return maxVal;
}
}
Math.max(a, b)
는 a 와 b 중에 가장 높은 수를 반환한다.
Math.min(a, b)
는 a 와 b 중에 가장 낮은 수를 반환한다.
인자 a, b 는 같은 Primitive type 끼리만 비교 가능하다.
ex)Math.max(int a, int b)