[BOJ 3029] 경고
문제 출처 : 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