✔ 최빈수 구하기
문제 분석하기
점수는 0점 이상 100점 이하이므로 101의 크기를 가진 배열에 점수에 따라 횟수를 증가시킨 후 가장 큰 값을 반환
손으로 풀어보기
- 배열에 점수에 따른 인덱스 위치 증가
- 배열 내림차순 정렬
- 가장 큰 값 반환
슈도코드 작성하기
T(테스트 케이스 수)
for(T만큼) {
t(테스트 번호)
score(점수 저장 배열 (0점부터 100점까지))
for(i -> 1000동안) {
score[점수]++
}
max(최댓값) = 0
index(최댓값의 인덱스) = 0
for(i -> score의 길이만큼) {
if(최댓값보다 점수가 크거나 같다면) {
최댓값, 인덱스 갱신
}
}
#T와 index 반환
}
코드 구현하기
/**
* 1204) 최빈수_구하기
*/
public class D001_1204 {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
// T(테스트 케이스 수)
int T;
T = sc.nextInt();
// T만큼
for (int test_case = 1; test_case <= T; test_case++) {
// t(테스트 번호)
int t = sc.nextInt();
// score(점수 저장 배열 (0점부터 100점까지))
int[] score = new int[101];
// 1000명의 학생동안
for (int i = 0; i < 1000; i++) {
// score[점수]++
score[sc.nextInt()]++;
}
// max(최댓값) = 0
int max = 0;
// index(최댓값의 인덱스) = 0
int index = 0;
for (int i = 0; i < score.length; i++) {
// 최댓값보다 점수가 크거나 같다면
if (score[i] >= max) {
// 최댓값, 인덱스 갱신
max = score[i];
index = i;
}
}
// #t와 index 반환
System.out.println("#" + t + " " + index);
}
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[1208] Flatten (0) | 2023.11.13 |
---|---|
[1206] View (0) | 2023.11.13 |
[42628] 이중우선순위큐 (0) | 2023.11.11 |
[42586] 기능개발 (0) | 2023.11.11 |
[42577] 전화번호 목록 (0) | 2023.11.10 |