BOJ/문자열 (해시,맵)

[Python] 백준 - 3029번 : 경고

JWonK 2021. 10. 9. 01:12
728x90
반응형

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

 

3029번: 경고

첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다. 둘째 줄에는 나트륨을 던질 시간

www.acmicpc.net

문자열 문제이다. 시간을 계산해서 시간 차를 구하는 문제이다.

나는 초단위로 모든 시간을 구해주었다. 1시간은 3600초, 1분은 60초, 1초 이렇게

계산해주었다. 그리고 하나 주의해야할 점이 2개의 시간이 같은 경우 0시간 0분 0초 차이가 아닌 하루 차이가 난다는 것을 인지하지 못해서 한 번 틀렸었다. 

import sys

first = input().split(':')
second = input().split(':')

if first == second:
    print('24:00:00')
else:
    if int(first[0]) > int(second[0]):
        second[0] = int(second[0]) + 24
    First_Time = int(first[0]) * 3600 + int(first[1]) * 60 + int(first[2])
    Second_Time = int(second[0]) * 3600 + int(second[1]) * 60 + int(second[2])

    result = Second_Time - First_Time
    lst = list()
    lst.append(int(result / 3600))
    result -= (int(result / 3600) * 3600)
    lst.append(int(result / 60))
    result -= (int(result / 60) * 60)
    lst.append(result)

    answer = ''
    for time in lst:
        if time < 10:
            answer += '0'
            answer += str(time)
        else:
            answer += str(time)
        answer += ':'

    for i in range(len(answer)-1):
        print(answer[i], end='')
728x90
반응형