경험의 기록

문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13zo1KAAACFAYh&categoryId=AV13zo1KAAACFAYh

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

import java.util.Scanner;
import java.io.FileInputStream;
 
class Solution
{
    public static void main(String args[]) throws Exception
    {
        Scanner sc = new Scanner(System.in);
        int T;
        T=sc.nextInt();
 
        for(int test_case = 1; test_case <= T; test_case++)
        {
            int n = sc.nextInt(); // 테스트 케이스 번호
            int[] arr = new int[101]; // 빈도 저장할 배열
             
            // 입력받은 숫자 빈도수 체크
            for(int i =0; i<1000; i++){
                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점 이므로

101의 사이즈를 가지는 배열에 점수의 개수를 각각 카운팅해준다.

 

그 후 카운팅한 배열의 최대값을 구해야 하는데 최빈수가 여러개일 경우 가장 큰 점수를 출력해야 하므로

0부터 시작하여 그 수가 최대값인지 비교하여 출력하면 된다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading