https://school.programmers.co.kr/learn/courses/30/lessons/120812?language=java
class Solution {
public int solution(int[] arr) {
int answer = 0;
// 배열의 숫자 중 가장 큰 숫자 번호만큼 배열을 만든다.
int[] cntArr = new int[Arrays.stream(arr).max().getAsInt() + 1];
// 각 숫자가 나올때마다 카운트 올려줌
for (int i = 0; i < arr.length; i++) {
cntArr[arr[i]]++;
}
// 최빈값이 몇번 나와있는지 찾기
int maxCnt = 0;
for (int i = 0; i < cntArr.length; i++) {
if (maxCnt < cntArr[i]) {
maxCnt = cntArr[i];
}
}
// 최빈값이랑 같은 빈도 숫자 찾기
ArrayList<Integer> maxNumbers = new ArrayList<>();
for (int i = 0; i < cntArr.length; i++) {
if (maxCnt == cntArr[i]) {
maxNumbers.add(i);
}
}
// arraylist 사이즈가 1이면 하나 넣은거 리턴. 하나가 아니면 -1 리턴
if (maxNumbers.size() == 1) {
answer = maxNumbers.get(0);
} else {
answer = -1;
}
return answer;
}
}
'내일배움캠프 > TIL' 카테고리의 다른 글
2022.12.9 (0) | 2022.12.09 |
---|---|
2022.12.7 (0) | 2022.12.07 |
2022.12.1 / Optional, Stream 연습 (0) | 2022.12.01 |
2022.11.30 (0) | 2022.11.30 |
2022.11.29 / Optional (1) | 2022.11.29 |