[코딩 테스트 RUN] SWEA 수업 : 1204. 최빈수 구하기

코테런/SWEA(알고리즘 수업)
2026.03.02

 

⚠️ 주의!
SWEA에서 낸 코딩 문제에 대한 해답이 들어있습니다.
열람 시 주의해주세요.

 

 

문제는 다음과 같다.

 

[SW Expert Academy] 1204. 최빈수 구하기

 

SW Expert Academy

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

swexpertacademy.com

 

제일 많이게 나온 숫자를 찾는다. 카운팅 정렬을 사용하면 편해진다.

count 배열의 길이는 101로 설정하고(점수는 100까지이고 최소치는 0이므로), 카운팅 정렬을 이용하여 원소를 하나씩 가산해나가면 된다.

이후에는 count 배열을 for문 순회하며 max값을 확인하면 된다.

 

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T ; test_case++) {
            int n = Integer.parseInt(br.readLine());
            StringTokenizer st = new StringTokenizer(br.readLine());
            int[] arr = new int[st.countTokens()];
            int[] count = new int[101];
            int max = 0;

            //카운팅 정렬 사용
            for (int i = 0; i < arr.length; i++) {
                arr[i] = Integer.parseInt(st.nextToken());
                count[arr[i]]++;
                if (count[arr[i]] > max) max = count[arr[i]];
            }

            //max값 확인
            int answer = 0;
            for (int i = 100; i >= 0; i--) {
                if(max == count[i]) {
                    answer = i;
                    break;
                }
            }

            System.out.println("#" + n + " " + answer);

        }
    }
}