[BOJ 3029] 경고

less than 1 minute read

문제 출처 : https://www.acmicpc.net/problem/3029

풀이

hh:mm:ss 로 주어지는 시간 문자열의 차이를 계산하여 출력한다. 길어야 24시간을 넘지 않는 것에 착안하여 자정을 넘어가는지 안넘어가는지에 유의하여 시간을 계산하면 된다.

  • 시/분/초 를 따로 계산하는 것보다 전체를 초 단위로 바꿔서 계산하는 것이 더 편할 수 있다.
  • 같은 입력이라면 24:00:00 만큼 차이나는 것이다.

코드

if __name__=="__main__":
    before = list(map(int, input().split(":")))
    after = list(map(int, input().split(":")))
    bseconds = int(before[0])*3600 + int(before[1])*60 + int(before[2])
    aseconds = int(after[0])*3600 + int(after[1])*60 + int(after[2])
    gap = aseconds - bseconds
    if gap <= 0:
      gap += 24*3600
    h = int(gap / 3600)
    m = int((gap - h * 3600) / 60)
    s = gap - h*3600 - m*60
    hh = '0' * (2-len(str(h))) + str(h)
    mm = '0' * (2-len(str(m))) + str(m)
    ss = '0' * (2-len(str(s))) + str(s)
    print("{}:{}:{}".format(hh, mm, ss))

개선할 점

다시 python 으로 PS 연습부터 해보자

Leave a comment