728x90
문제
https://www.acmicpc.net/problem/14402
풀이
동명이인을 고려한 전체 출퇴근 기록에 대해 출근 기록과 퇴근 기록이 일치하지 않는 경우를 전부 야근이라 가정하고, 전체 야근 인원을 구하는 문제다.
만약 동명이인이 출근을 했다면, 출근한 동명이인의 수를 세주자.
// Solve
Map<String, Integer> map = new HashMap<>();
int res = 0;
while (N-- > 0) {
st = new StringTokenizer(br.readLine());
String name = st.nextToken();
String op = st.nextToken();
if (op.equals("+")) {
map.put(name, map.getOrDefault(name, 0) + 1);
} else {
퇴근 시에는 출근 기록이 존재하는지 확인하자.
만약 출근 기록이 없다면 야근이므로 야근 인원을 세주고, 출근 기록이 있다면 야근이 아니기 때문에 퇴근 처리만 한다.
int cnt = map.getOrDefault(name, 0);
if (cnt == 0) {
++res;
} else {
map.put(name, cnt - 1);
}
}
}
기록에서 출근했지만 퇴근하지 않은 사람들은 전부 야근이다.
출근한 인원 수 만큼 야근으로 계산하자.
for (int cnt : map.values()) {
res += cnt;
}
풀이 시간
≤ 22m
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/14402.java
problem-solving/baekjoon-online-judge/easy/14402.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 03076] 상근이의 체스판 [Java] (1) | 2025.04.28 |
---|---|
[백준 14655] 욱제는 도박쟁이야!! [Java] (0) | 2025.04.27 |
[백준 11637] 인기 투표 [Java] (0) | 2025.04.24 |
[백준 01758] 알바생 강호 [Java] (0) | 2025.04.23 |
[백준 03991] 한번 쏘면 멈출 수 없어 [Java] (0) | 2025.04.22 |