[BOF/Python] 2525번, 오븐 시계
📜 문제
🔥난이도🔥

1차 풀이 ⭕
시간에 대한 문제로 아래 조건에 대한 처리가 중요하다.
1. ‘분’이 60 이상이 될 경우 시각(시) +1
2. ‘시’가 24 이상이 될 경우 0부터 시작
A, B = map(int, input().split())
C = int(input())
# 요리에 걸리는 시간(분)을 '시'와 '분'으로 계산
C_H = C // 60
C_M = C % 60
# 요리 시작 시각에 더한다. (요리 완성 시각)
cook_H = A + C_H
cook_M = B + C_M
# '분'이 60 이상이면
if cook_M >= 60:
cook_H = cook_H + 1 # '시' +1
cook_M = cook_M - 60 # '분' -60
# '시'가 24 이상이면
if cook_H >= 24:
cook_H = cook_H - 24 # 0부터 시작되도록
print(f'{cook_H} {cook_M}')

2차 풀이(개선) ⭕
코드를 좀 더 간결하게 할 수 없을까 생각 중 시작 시각의 ‘분’과 요리에 걸리는 시간(분)을 처음부터 더하면 코드를 줄일 수 있겠다고 생각했다!
A, B = map(int, input().split())
C = int(input())
plus_H = (B + C) // 60 # 요리에 걸리는 시간(시)
cook_H = A + plus_H # 요리가 끝나는 시각(시)
cook_M = (B + C) % 60 # 요리가 끝나는 시각(분)
# 요리가 끝나는 시각(시)이 24 이상이면 0부터 시작
if cook_H >= 24:
cook_H = cook_H - 24
print(f'{cook_H} {cook_M}')

코드의 길이를 251 Byte에서 187 Byte로 줄일 수 있었다!👍
보충 🤓
시간을 빼야할 경우에는 더할 때와 반대의 처리가 필요하다.
1. ‘분’이 0 미만이 될 경우 시각(시) -1
2. ‘시’가 0 미만이 될 경우 23부터 시작
시간의 계산에는 항상 분에서 시로 바뀌는 부분에 대해서 신경 쓸 필요가 있다.
현재 티어 🥉
