"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 14402] 야근 [Java]

kimyoungrok 2025. 4. 25. 11:23
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