728x90
📚문제
📝풀이
# 5575 타임 카드
for _ in range(3):
h1, m1, s1, h2, m2, s2 = map(int,input().split())
# 전부 다 초로 환산하여 계산
t1 = h1*60*60 + m1*60 + s1
t2 = h2*60*60 + m2*60 + s2
t = t2 - t1
# t는 현재 초이므로 시간(h)을 구하려면 3600으로 나눈 몫 구하기
# 그리고 시간이므로 24시간이 넘으면 24로 나눈 나머지 시간구하기 (이 문제에선 이렇게 나올 일 없음)
# 이렇게 해야 24시간 형식 유지 (ex 25시간이 나오면 24로 나눈 나머지가 1이므로 1시부터 시작)
h = t//60//60 % 24
# 마찬가지로 분(m)을 구하려면 60으로 나눈 몫 구하기
# 그리고 분이므로 60분이 넘으면 0분부터 다시 시작하기위해 60으로 나눈 나머지 분 구하기
m = t//60 % 60
# 초(s)는 t를 60으로 나눈 나머지 구하기
# 60을 넘어가면 0초부터 다시 시작하기
s = t % 60
print(h,m,s)
시간 문제는 역시 어렵다...
퇴근시간 (시,분,초)에서 출근시간 (시,분,초)의 차이를 구하고
분이 (-)이고, 초도(-)이면...
이런식으로 풀려 그랬는데 너무 복잡해서 포기했다ㅎ
구글링 하다가 본 방법은 우선
출근시간과 퇴근시간을 초로 환산한 다음에
차이를 계산한다
그 다음 초를 시,분,초로 환산하면 끝
초로 환산한 다음에 통째로 계산 하는것까진 이해도 되고
앞으로의 시간문제에서도 유용하게 사용할 것 같다
근데 결과로나온 초를 시 분 초로 환산할 때
시간은 60으로 두번 나눈 몫을 24로 나누어 주어야하고
분은 60으로 한번 나눈 몫을 60으로 나누어 주어야하는 과정이 처음엔
조금 헷갈리고 머릿속에서 이해가 잘 안됐다
시간과 분을 대입해보고 계속 생각해보니까 조금 이해가 됐다
그래도 다음에 나오면 또 까먹을수도...
익숙해질 때까지 보고 완전히 이해될 때까지 풀어야겠다
728x90
'Python(알고리즘,문제풀이) > BOJ (Bronze IV)' 카테고리의 다른 글
백준 11282번 / 한글 - 파이썬 (0) | 2023.08.26 |
---|---|
백준 8710번 Koszykarz - 파이썬 (0) | 2023.08.08 |
백준 5358번 / Football Team - 파이썬 (0) | 2023.08.01 |
백준 5357번 / Dedupe -파이썬 (0) | 2023.08.01 |
백준 4696번 / St. Ives - 파이썬 (0) | 2023.07.30 |