문제(출처: https://www.acmicpc.net/problem/32328)
< Bronze Count >
문제 풀이
점수를 key값으로 그 점수를 받은 인원수를 value로 가지는 HashMap을 사용한다.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
public class _32328_ { // Bronze Count
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
int score = Integer.parseInt(bf.readLine());
if (map.containsKey(score)) {
map.replace(score, map.get(score) + 1);
} else {
map.put(score, 1);
}
}
ArrayList<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list, Collections.reverseOrder());
System.out.println(list.get(2) + " " + map.get(list.get(2)));
}
}
변수)
n : 참가자 수
map : HashMap <점수, 점수받은 인원수>
list : 점수를 값으로 가지는 ArrayList
참가자 수를 입력받아 참가자 수만큼 점수를 입력받는다. 점수가 key값에 있다면 value에 1 더하고 없다면 key를 추가한다. key값을 ArrayList로 만들어 내림차순으로 정렬한다. 3등을 찾기 위해 ArrayList의 2번째 값과 그 값을 key값으로 가지는 value를 찾아 출력한다.
'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글
[Baekjoon] 11645_I’ve Been Everywhere, Man (0) | 2025.01.10 |
---|---|
[Baekjoon] 29881_Account Names (0) | 2025.01.09 |
[Baekjoon] 31307_Lines Per Hour (0) | 2025.01.07 |
[Baekjoon] 5104_NoMoPhobia (0) | 2025.01.06 |
[Baekjoon] 9979_Does This Make Me Look Fat? (0) | 2024.12.26 |