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

PS/Baekjoon Online Judge

[백준 01408] 24 [Java]

kimyoungrok 2025. 4. 4. 16:18
728x90

문제

https://www.acmicpc.net/problem/1408

 


풀이

두 시간대가 주어졌을 때 시간의 차를 계산하는 문제다.

시작 시간과 종료 시간은 최대 48시간 차이가 날 수 있다. 이는 LocalTime.parse로 충분하다.

        // Input
        LocalTime start = LocalTime.parse(br.readLine());
        LocalTime end = LocalTime.parse(br.readLine());

시작 시간과 종료 시간의 차가 음수라면, 종료 시간은 시작 시간의 다음 날을 의미한다.

24시간을 더한 후 올바른 차를 계산해서 출력하자.

        // Solve
        int totalSec = (int) Duration.between(start, end).getSeconds();
        if (totalSec < 0) {
            totalSec += 24 * 3600;
        }
        final int H = totalSec / 3600;
        final int M = (totalSec % 3600) / 60;
        final int S = totalSec % 60;

        // Output
        System.out.printf("%02d:%02d:%02d", H, M, S);
    }
}

소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/01408.java

728x90