CodingTEST

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

경걍 2023. 11. 18. 03:53
반응형

1204. 최빈수 구하기

 

SW Expert Academy

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

swexpertacademy.com

 

 

문제 분석

 

  • 1000개의 수를 입력받고, 최빈수를 출력해라
    • 최빈수 : 가장 여러번 나타나는 값

 

해결 포인트

 

  • 2차원 배열로 모든 수 저장 : 메모리 초과
  • Map으로 구현 
    • KEY: 입력받은 수
    • VALUE: 입력받은 수가 몇번 나타났는지

 

코드

 

import java.util.*;

class Solution {
    public static void main(String args[]) throws Exception {
        //System.setIn(new FileInputStream("res/input.txt"));
        Scanner sc = new Scanner(System.in);
        int T;
        T = sc.nextInt();

        for (int test_case = 1; test_case <= T; test_case++) {
            int testNum = sc.nextInt();

            TreeMap<Integer, Integer> treeMap = new TreeMap<>();
            for (int i = 0; i < 1000; i++) {
                int num = sc.nextInt();
                if(treeMap.containsKey(num)) {
                    treeMap.put(num, treeMap.get(num)+1);
                }
                else {
                    treeMap.put(num, 1);
                }
            }

            int max = 0;
            int maxNum = 0;
            for (int i = 0; i < 101; i++) {
                if(treeMap.get(i) >= max) {
                    max = treeMap.get(i);
                    maxNum = i;
                }
            }

            System.out.printf("#%d %d\n", test_case, maxNum);
        }
    }
}
반응형