1) SW Expert Academy 정책상 문제 자체를 퍼가는 것은 금지되며 링크와 출처로 명시해 주시기 바랍니다.
2) 문제에 대한 본인의 풀이에 대해서는 개인 학습 등 상업적 용도가 아닌 경우에만 문제 출처와 함께 게시가 가능합니다.
※ 저작권 이슈가 있을 시 법적 제재를 받을 수 있으니 참고하여주시기 바랍니다.
문제 설명
나의 풀이
import java.util.Scanner;
class Solution {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); // 테스트 케이스 번호
for(int test_case = 1; test_case <= T; test_case++) {
int n = sc.nextInt(); // 테스트 케이스 번호
int[] arr = new int[101]; // 점수는 0~100점이다. 배열로 풀 시 100칸이 아닌 101칸이 필요하다
// 입력받은 숫자 빈도수 체크
for(int i =0; i<1000; i++){ // 1000명의 학생의 점수 입력
arr[sc.nextInt()]++;
}
// 배열의 값을 실제로 변경하면 안되니, 이것을 위한 최빈값과 최빈값인 점수 저장 변수
int max = 0;
int index = 0;
// 최빈값 비교
for(int i =0; i<arr.length; i++){
if(arr[i] >= max){
max = arr[i];
index = i;
}
}
System.out.println("#" + n + " " + index);
}
}
}
0점부터 100점 사이의 점수에서 최빈수를 구하는 문제이다. 인덱스를 점수로 사용하자!
0부터 100을 인덱스로 두는 배열을 만들어서 입력에 따라 그 인덱스의 값을 +1 해준 후 최빈값을 갖고 있는 인덱스와 그 최빈값을 출력하면 된다.
또한 각 테스트 케이스마다 테스트 케이스 번호도 입력으로 주어지는 걸 고려해야 한다.
*입력순서: 전체 테스트 케이스 수(10) -> 테스트 케이스 번호(1) -> 점수(1000개) -> 테스트 케이스 번호(2) -> 점수(1000개) ...
'👨💻 Coding Test' 카테고리의 다른 글
[SW Expert Academy/Java/D1] 1936.1대1 가위바위보 (0) | 2024.10.31 |
---|---|
[SW Expert Academy/Java/D3] 5642.합 (0) | 2024.10.25 |
[SW Expert Academy/Java/D1] 2019.더블더블 (0) | 2024.10.25 |
[SW Expert Academy/Java/D1] 1545.거꾸로 출력해 보아요 (0) | 2024.10.24 |
[Programmers/Java/Lv.1] 2.2016년 (2) | 2024.10.24 |