문제(출처: https://www.acmicpc.net/problem/3022)
< PRASE >
문제 풀이
HashMap을 활용하여 경고 횟수를 구한다.
주어진 예제가 다음과 같다면
mirko
stanko
stanko
stanko -> mirko : 1 / stanko : 2 이므로 경고!
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class _3022_ { // PRASE
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
HashMap<String, Integer> map = new HashMap<>();
int result = 0;
for (int i = 0; i < n; i++) {
String name = bf.readLine();
if (map.containsKey(name)) {
if (i - map.get(name) < map.get(name)) {
result += 1;
}
map.replace(name, map.get(name) + 1);
} else {
map.put(name, 1);
}
}
System.out.println(result);
}
}
변수)
n : 아이들이 가져간 음식 조각의 총 개수
map : HashMap <이름, 아이가 가져간 음식 조각의 개수>
아이들이 가져간 음식 조각의 총 개수를 입력받는다. n만큼 이름을 입력받으면서 HashMap에 값이 있다면 이미 다른 모든 아이들이 가져간 음식의 총합보다 더 많은지 확인한다. 많다면 result+1을 통해 경고하고, HashMap 값을 업데이트한다. HashMap에 값이 없다면 저장한다.
최종 result를 출력한다.

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글
| [Baekjoon] 11969_Breed Counting (0) | 2026.02.24 |
|---|---|
| [Baekjoon] 19622_회의실 배정 3 (0) | 2026.02.12 |
| [Baekjoon] 19621_회의실 배정 2 (0) | 2026.02.11 |
| [Baekjoon] 5953_Profits (0) | 2026.02.10 |
| [Baekjoon] 1699_제곱수의 합 (0) | 2026.02.09 |