문제
https://www.acmicpc.net/problem/2884
문제가 길지만 요약하면 다음과 같다.
시각을 입력으로 받아, 45분 전의 시각을 출력하라.
24시간 표현을 사용하여 시간은 0부터 23까지, 분은 0부터 59까지를 범위로 가진다.
풀이
- 내 풀이
1. 입력값으로부터 시간과 분을 각각 저장한다.
2. 분의 값이 45 미만인 경우, 분의 값에 15를 더하고 시간의 값을 1 감소시킨다. 시간의 값이 0인 경우에는 23으로 변경한다.
3. 분의 값이 45 이상인 경우, 분의 값에 45를 뺀다.
코드
h, m = map(int, input().split()) if m < 45: m += 15 h = 23 if h == 0 else h - 1 else: m -= 45 print(h, m)
- 다른 풀이
1. 입력값으로부터 시간과 분을 각각 저장한다.
2. 0시 0분으로부터 입력값까지의 분을 계산하여, 해당 값에서 45를 뺀다.
3. 결과값을 60으로 나눈 몫을 24으로 나눈 나머지가 시간에 해당하며, 결과값을 60으로 나눈 나머지가 분에 해당한다.
코드
h, m = map(int, input().split()) t = h * 60 + m - 45 print(t // 60 % 24, t % 60)
728x90