728x90
📚문제
📝풀이
# 15080 Every Second Counts (매 초가 중요해)
# 내 틀린 코드
start = input().split()
end = input().split()
h1, m1, s1 = map(int,(start[0], start[2], start[-1]))
h2, m2, s2 = map(int,(end[0], end[2], end[-1]))
if (h2-h1)<0 :
print(((24-h1) + h2)*3600 + (m2-m1)*60 + (s2-s1))
else:
print((h2-h1)*3600 + (m2-m1)*60 + (s2-s1))
처음 풀이는 이렇게 h1, m1, s1을 따로 변수에 할당하고 풀어야
자정에서 시간이 넘어갈경우(h2-h1<0)에 대해서 계산하기 쉬울 거라고 생각했다
근데 틀렸다...
게시판의 반례의 예를 보니
이런식으로 풀게 되면
자정을 넘어간 이후에는 (ex 0시0분1초와 0시0분0초) 출력값과 정답이 다르게 된다
그렇기 때문에
우선 시,분,초를 하나의 time으로 지정
그리고 하루 동안의 시간을 초로 바꾸어준다 ( = 3600*24)
if 조건에서( t2-t1)이 음수이므로
(3600*24) + (t2-t1)을 해주게 되면
하루동안의 총 시간에서
자정이후에 지난 시간만큼 빼주고
시작시간부터 끝시간까지 걸린 총시간(초)을 계산해준다
# 15080 Every Second Counts (매 초가 중요해)
h1,m1,s1 = map(int,input().split(':'))
h2,m2,s2= map(int,input().split(':'))
t1 = h1*3600 + m1*60 + s1
t2 = h2*3600 + m2*60 + s2
if (t2-t1)<0 :
print((t2-t1)+(3600*24))
else:
print(t2-t1)
728x90
'Python(알고리즘,문제풀이) > BOJ (Bronze IV)' 카테고리의 다른 글
백준 24196번 / Gömda ord(숨겨진 단어) - 파이썬 (0) | 2023.09.23 |
---|---|
백준 15372번 / A Simple Problem - 파이썬 (0) | 2023.09.05 |
백준 11282번 / 한글 - 파이썬 (0) | 2023.08.26 |
백준 8710번 Koszykarz - 파이썬 (0) | 2023.08.08 |
백준 5575번 / 타임 카드 - 파이썬 (0) | 2023.08.02 |