[알고리즘] 최빈수 구하기
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
'알고리즘 풀이 > Java' 카테고리의 다른 글
[알고리즘] 스도쿠 검증 (0) | 2024.01.01 |
---|---|
[알고리즘] 두 개의 숫자열 (1) | 2024.01.01 |
[알고리즘] 파리퇴치3 (1) | 2024.01.01 |
[알고리즘] 자릿수 더하기 (0) | 2023.12.31 |
[알고리즘] 중간값 찾기 (0) | 2023.12.31 |