진짜 정말 너무 오래 걸렸던 문제다...🫠 (무려 3일이나 걸림) 겨우 테스트 케이스를 통과해서 기쁜 마음으로 제출 후 채점을 했는데 런타임 오류 와장창... 구글링을 해도 Lv.0 이라 그런지 코드가 거의 안 나와서 개념 위주로 검색을 할 수 밖에 없었다.
처음에 테스트 케이스만 보고 0을 고려하지 않고 코드를 짰던 게 원인이었다. 그 부분을 수정하고, 최빈값이 여러 개인 경우 -1을 출력하는 부분을 수정했더니 드디어 100점이 나왔다. 100점 보고 너무 기뻐서 손으로 입까지 막았던ㅋㅋㅋㅋㅋ 기분 너무 좋다!
class Solution {
public int solution(int[] array) {
int answer = 0;
int arr_max = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] > arr_max) {
arr_max = array[i];
}
}
int[] count = new int[arr_max + 1];
int max = 0;
int n = 0;
int mode = 0;
for (int i = 0; i < array.length; i++) {
count[array[i]]++;
}
for (int i = 0; i < count.length; i++) {
if (count[i] > max) {
max = count[i];
answer = i;
}
}
for (int i = 0; i < count.length; i++) {
mode++;
if (count[i] == max) {
n++;
}
}
if (n > 1)
answer = -1;
return answer;
}
}
아옹... 예외테스트가 자꾸 걸려서 결국 이글을 보게됐는데
mode변수는 필요가 없네용 ㅋㅋ