[백준/JAVA] 3029번 경고

정은아·2024년 6월 6일

[알고리즘] 수학 모음

목록 보기
102/152
post-thumbnail

문제

내 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main extends Exception {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine(), ":");

        int currentHour = Integer.parseInt(st.nextToken());
        int currentMinutes = Integer.parseInt(st.nextToken());
        int currentSeconds = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine(), ":");

        int bombHour = Integer.parseInt(st.nextToken());
        int bombMinutes = Integer.parseInt(st.nextToken());
        int bombSecons = Integer.parseInt(st.nextToken());

        int answerHour = 0;
        int answerMinutes = 0;
        int answerSeconds = 0;

        String answerH, answerM, answerS;



        if (bombSecons < currentSeconds){
            answerSeconds = (60 + bombSecons) - currentSeconds;
            bombMinutes--;
        }else{
            answerSeconds = bombSecons - currentSeconds;
        }

        if (bombMinutes < currentMinutes){
            answerMinutes = (60 + bombMinutes) - currentMinutes;
            bombHour--;
        }else{
            answerMinutes = bombMinutes - currentMinutes;
        }

        if (bombHour >= currentHour){
            answerHour = bombHour - currentHour;
        }else{
            answerHour = (24+bombHour) - currentHour;
        }

        if (answerHour == 0 && answerMinutes == 0 && answerSeconds == 0){
            answerHour = 24;
        }

        if (answerSeconds < 10){
            answerS = "0" + answerSeconds;
        }else{
            answerS = String.valueOf(answerSeconds);
        }

        if (answerMinutes < 10){
            answerM = "0" + answerMinutes;
        }else{
            answerM = String.valueOf(answerMinutes);
        }

        if (answerHour < 10){
            answerH = "0" + answerHour;
        }else{
            answerH = String.valueOf(answerHour);
        }


        sb.append(answerH).append(":").append(answerM).append(":").append(answerS);
        System.out.println(sb.toString());
    }
}

느낀점

반례를 주의한다.
00:00:00
00:00:00
일 때에는 답이
24:00:00
이므로 if문을 하나 추가한다!

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글