Baekjoon 문제 풀기 (2884번 : 알람 시계)Python
2884번 : 알람 시계
1. 문제읽기
시계 문제
예전에 브론즈4에서 풀었던 오븐 시계와 비슷한 문제이다.
일단 m이 45분 이상일 때와 45분 미만일 때 두가지의 경우를 나누어 생각하였다.
45분 이상일 때는 그냥 45분을 빼줌으로서 간단히 끝났지만,
45분 미만일 때가 문제였다.
h의 값을 1 빼주어야 하는데, h의 값이 0일때 1을 빼면 23이 나와야 하는 경우가 제일 곤란했다.
이 때, 오븐 시계 문제를 풀었던게 도움이 되었다.
나눗셈 연산자를 이용하여, -1%24
의 값이 23
이라는 것을 생각했다.
그런데, 알고보니 음수의 나머지 값이 무조건 양수와 똑같이 동작하지는 않기 때문에 좋지 않은 코드였다.
print(3%7) # 3
print(-3%7) # 4
2. 제출 코드
h, m = map(int, input().split())
t = 45
if m >= t:
m = m - t
print(h, m)
else:
m = m + 15
h = (h-1)%24
print(h, m)
3. 공부할 것
다른 코드를 보니 세가지 경우로 나누어 푸는 것이 정석인듯 하다.
h의 값이 0에서 23이 되는 경우를 아예 빼서 코드를 작성하였다.
h, m = map(int, input().split())
t = 45
if m >= t:
print(h, m-45)
elif m < t and h >= 1:
print(h-1, m+15)
else:
print(23, m+15)
댓글남기기