개인적으로 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;
}
}