less than 1 minute read

2525번 오븐시계

첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다. 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

Input)

14 30

20

Output) 14 50

문제

요리시간(C)을 1000분까지 입력가능하니 분단위를 몇시간인지 알 수 있어야 했지만, 감이 잘 잡히지 않았다.

문제해결

곰곰히 생각해보니 시간과 분, 요리시간을 모두 분으로 통일하여 더한 뒤 60으로 나눈 몫과 나머지가 패턴에 꼭 들어맞았다. 시간의 경우 60을 곱하여 분으로 변환하였고 분과 요리시간은 그대로 더하였다. 몫의 경우 소수점을 버린 정수만 시간으로 가지고 있고 나머지를 분으로 더해주면 요리시간만큼 지난 시간값을 알 수 있다.

1
2
3
4
5
6
7
8
9
10
A,B = map(int, input().split())
C = int(input())
A1 = (A*60 + B + C)//60
B1 = (A*60 + B + C)%60
if A1 == 24:
    print('0',B1)
elif A1 > 24:
    print(A1-24,B1)
else:
    print(A1,B1)