[알고리즘] 최빈수 구하기

2024. 1. 1. 16:40알고리즘 풀이/Java

나의 풀이

- HashMap.getOrDefault를 배웠다.

- for (int i; int[] tests)로 for each를 사용한다는 것을 배웠다.

- mode 뿐만 아니라 maxCount도 갱신을 해줘야 했는데 이걸 놓쳐서 한참 헤맸다. 조심하자!!

import java.util.Scanner;
import java.util.HashMap;
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++)
		{	
            HashMap<Integer, Integer> students = new HashMap<>();
            sc.nextInt();
            for (int i = 0; i < 1000; i++) {
                	int number = sc.nextInt();
            		students.put(number, students.getOrDefault(number, 0) + 1);
            }
            
            System.out.println("#" + test_case + " " + findMode(students));
			
        }
	}
    
    private static int findMode(HashMap<Integer, Integer> students) {
    
        int maxCount = -1;
        int mode = -1;
        for (int key : students.keySet()) {
        	int count = students.get(key);    
            if (count > maxCount || (count == maxCount && mode < key)) {
               		maxCount = count;
            	    mode = key;
            }
        }
        return mode;
    }
}

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13zo1KAAACFAYh

 

SW Expert Academy

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

swexpertacademy.com

 

'알고리즘 풀이 > Java' 카테고리의 다른 글

[알고리즘] 스도쿠 검증  (0) 2024.01.01
[알고리즘] 두 개의 숫자열  (1) 2024.01.01
[알고리즘] 파리퇴치3  (1) 2024.01.01
[알고리즘] 자릿수 더하기  (0) 2023.12.31
[알고리즘] 중간값 찾기  (0) 2023.12.31