-
백준 1408번 (문자열 연결, 숫자 출력 앞에 0 붙이기)백준 with Python 2022. 12. 28. 21:32
nh, nm, ns= input().split(':')
sh, sm, ss= input().split(':')
nt= int(nh+nm+ns) # 문자열을 편하게 더할 수 있다.
st= int(sh+sm+ss)
nh, nm, ns= map(int, (nh, nm, ns))
sh, sm, ss= map(int, (sh, sm, ss))
if nt>st:
sh=sh+24
rh= sh-nh
if sm<nm:
rh=rh-1
sm=sm+60
rm= sm-nm
if ss<ns:
rm=rm-1
ss=ss+60
rs= ss-ns
print("%02d:%02d:%02d" % (rh,rm,rs)) # 정수형 앞에 0을 붙여 출력하는 방법
이렇게 하니 예외가 발생하게 되었다.23:59:59
23:59:58
>> 24:-1:59
이런 방식으로는 알고리즘이 너무 복잡해져 아예 새로 엎어 시 분을 모두 초로 옮기는 알고리즘을 새로 짰다.
nh, nm, ns= map(int, input().split(':'))
sh, sm, ss= map(int, input().split(':'))
time=sh*3600+sm*60+ss-(nh*3600+nm*60+ns)
if time<0:
time=time+24*3600
h= time//3600 # 초로 되어있는 시간을 이런식으로 간단하게 시 분 초로 표현할 수 있다.
m= (time%3600)//60
s= time%60
print("%02d:%02d:%02d" % (h,m,s))'백준 with Python' 카테고리의 다른 글
백준 2010번 (for문 _사용 및 sys입력) (0) 2023.01.01 백준 2440번 (반복문 거꾸로, 출력반복) (0) 2022.12.31 백준 9506번 (리스트) (0) 2022.12.26 백준 8958번 (리스트와 반복) (0) 2022.12.26 백준 2754번 (딕셔너리) (0) 2022.12.25