백준 3029 - 경고

Updated:

Java

3029 번 - 경고

문제

접근 방법

시간을 초로 변환하여 계산한다.

출력 포멧을 printf를 이용한다.

코드

import java.util.*;
import java.io.*;

public class Main {
	static int n;
	public static void main(String[] args) throws IOException {
		//System.setIn(new FileInputStream("res/mainInput.txt"));	//제출 할 때 주석해야함
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    	String start = br.readLine();
    	String end = br.readLine();
    	int sTime = 0, eTime = 0;

    	StringTokenizer stk = new StringTokenizer(start, ":");
    	for(int i = 2; i >= 0; i--) {
    		sTime += stoi(stk.nextToken()) * Math.pow(60, i);
    	}

    	stk = new StringTokenizer(end, ":");
    	for(int i = 2; i >= 0; i--) {
    		eTime += stoi(stk.nextToken()) * Math.pow(60, i);
    	}

    	int wait = (eTime + 24 * 3600 - sTime) % (3600 * 24);

    	int hour = wait / 3600;
    	int min = (wait % 3600) / 60;
    	int sec = (wait % 3600) % 60;

    	if(sTime == eTime)
    		System.out.println("24:00:00");
    	else
    		System.out.printf("%02d:%02d:%02d", hour, min, sec);

    	br.close();
	}


	static int stoi(String str) {
    	return Integer.parseInt(str);
    }
}

총평

후기

시간 계산을 초로 변환 스트링 포멧을 이용

개선할 점