백준 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);
    }
}
총평
후기
시간 계산을 초로 변환 스트링 포멧을 이용
