백준 2525 오븐시계
https://www.acmicpc.net/problem/2525
처음에는 알람시계랑 비슷하다고 생각해서 쉽다고 생각했다가 이해를 하면 할 수록 어려워 지는 문제였다...
일단 간단하게 생각해보면 60분이 넘어갈 경우, 60분이 넘지 않을 경우, 24시가 넘어 갈 경우로 나눌 수 있겠다.
H, M = map(int, input().split()) //현재 시간과 분을 입력받는다
F = int(input()) // 오븐 시간을 입력받는다
솔직히 여기까지는 쉬웠다.
근데 문제는 여기서부터인데 이 식을 이해하는게 난 참 어려웠다.
60분이 넘어 갈 경우 분에서는 60을 빼주고, 시간에서는 1을 더해주면 되는데 이게 1시간 이상 더해줘야 할 경우에는 while를 써주거나 다른 방법으로 더해줘야 한다.
그래서 다른 분들 코드를 보니 분에서 60을 나누고, 몫을 시간에 더해주는 방식이다.
계산기를 돌려보고 바로 이해하긴 했는데 글로만 봤을 때는 이해가 조금 힘들었던...하하
예로들어 시간이 1시간 40분이라고 쳤을 때 오븐구이 시간이 260분이라고 해보자.
그럼 40+260 = 260 / 60 = 5 그럼 5를 시간에 더해주는 것이다. 그리고 분은 나머지로 설정해주면 된다. 그래서 최종시간은 6시간 00분
만약 24시가 넘어 갈 경우에는 시간에 나머지를 더해주면 된다.
그래서 코드를 짜보면
H += F//60
M += F%60
if M >= 60: //M이 60분을 넘을 경우
H += 1
M -= 60
print(H, M)
if H >= 24: //H가 24시를 넘을 경우
H -= 24
print(H, M)
이렇게 되겠다.