[Programmers/코딩테스트 연습] 최빈값 구하기 java
2022. 11. 26. 11:59ㆍIT/Programmers
728x90
반응형
Java에서는 배열 내에 특정 값이 몇 개 있는지 바로 찾을 수 있는 함수가 없다고 한다.
대신 배열 Array를 List로 바꿔서
- Collections.frequency(list, "찾는 값")
을 이용하면 배열 내의 특정 원소 개수를 구할 수 있다.
하지만 import java.util.ArrayList가 안되는 것 같아서 for문을 이용하기로 했다.
최빈값 구하기 Java
class Solution {
public int solution(int[] array) {
int answer = 0;
int[] count = new int[1000]; //문제 조건: 0 <= 원소크기 < 1000
int max = 0;
for (int i = 0; i < array.length; i++) {
count[array[i]]++;
}
for (int j = 0; j < count.length; j++) {
if(count[j] > max) {
answer = j;
max = count[j];
} else if (count[j] == max) {
answer = -1;
}
}
return answer;
}
}
자꾸 런타임 에러가 발생해서 뭐가 문제일까 생각했는데,
1) count 생성 시 크기를 array.length로 지정 (불확정적이다)
2) count 생성 시 크기를 999로 지정 (작다)
3) answer = j를 for문 밖에 작성 (해제된 변수 사용)
이런 멍청한 짓을 하고 나서야 성공했다. .. ㅎ
728x90
반응형
'IT > Programmers' 카테고리의 다른 글
[Programmers/코딩테스트 입문] 아이스 아메리카노, 배열뒤집기 Java (StringBuffer, charAt) (0) | 2022.11.28 |
---|---|
[Programmers/코딩테스트 연습] 짝수는 싫어요 Java (arraylist 동적 배열) (0) | 2022.11.27 |
[Programmers/코딩테스트 연습] 피자 Java (0) | 2022.11.25 |
[Programmers/코딩테스트 연습] 중앙값 - 배열 연산자, 나누기 연산자, python 주석처리 (0) | 2022.11.24 |
[Programmers/코딩테스트 연습] 과일장수 Python (2) | 2022.11.21 |