공부하는 히욤이

[SWEA] 7732. 시간 개념 본문

Algorithm/SW Expert Academy

[SWEA] 7732. 시간 개념

히욤이 2020. 5. 8. 23:38

SW Expert 7732. 시간 개념

 

* 문제의 저작권은 SW Expert에 있습니다.

 

 

 

 

 

 

[문제 접근]

 

약속시간 - 현재시각으로 답만 구하면 되는 문제

쉬운 문제인것 같은데 예외의 경우를 생각하지 않고 풀었더니 1시간 가량 걸려서 푼 문제

현재 시각보다 약속 시간이 더 빠른 경우에는 약속이 다음 날에 있는 것이라는 것을 유의해서 풀어야 할 것 같다

문제만 좀 더 꼼꼼히 읽었어도 조금 더 빨리 풀 수 있었을 것 같다

 

 

 

 

[코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;

public class Solution_7733 {
    public static void main(String[] args) throws Exception, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            String presentTime = br.readLine();
            String promissTime = br.readLine();

            int hour = Integer.parseInt(presentTime.substring(0,2));
            int hour2 = Integer.parseInt(promissTime.substring(0,2));
            int minute = Integer.parseInt(presentTime.substring(3,5));
            int minute2 = Integer.parseInt(promissTime.substring(3,5));
            int second = Integer.parseInt(presentTime.substring(6,8));
            int second2 = Integer.parseInt(promissTime.substring(6, 8));
            
            int anshour = 0;
            int ansminute = 0;
            int anssecond = 0;
            
            if (hour2 > hour) {
                anshour = hour2 - hour;
            } else if (hour2 < hour) {
                anshour = 24 + hour2 - hour;
            } else if (hour2 == hour) {
                if (minute > minute2) {
                    anshour = 24;
                } else if (minute < minute2) {
                    anshour = hour2 - hour;
                } else if (minute == minute2) {
                    if (second > second2) {
                        ansminute = 60;
                    } else {
                        ansminute = minute2 - minute;
                    }
                }
            }
            
            if (minute2 - minute >= 0) {
                ansminute = minute2 - minute;
            } else {
                anshour = anshour-1;
                ansminute = minute2+60 - minute;
            }
            
            if (second2 - second >= 0) {
                anssecond = second2 - second;
            } else {
                ansminute = ansminute-1;
                anssecond = second2+60 - second;
            }
            
        
            
            DecimalFormat df = new DecimalFormat("00");
            String answer = (df.format(anshour)+ ":" + df.format(ansminute) +":" +df.format(anssecond));
            System.out.println("#" + test_case +" " + answer);
        }
    }
}

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[SWEA] 7810. 승현이의 질문  (0) 2019.09.15
[SWEA] 4050. 재관이의 대량 할인  (0) 2019.08.29
[SWEA] 1486. 장훈이의 높은 선반  (0) 2019.08.23
[SWEA] 7829. 보물왕 태혁  (0) 2019.08.23
[SWEA] 1209. Sum  (1) 2019.04.10