https://www.acmicpc.net/problem/2884
H,M = map(int,input().split())
if M > 44:
print(H, M-45)
elif M<45 and H>0:
print(H-1,M+15)
else:
print(23,M+15)
말로 풀어서 풀이
45분 전에 알람을 맞추라는 소리인데
분에서 -45를 해야한다.
원래 시간에서 분이 45보다 크거나 같을 경우 그냥 45를 빼주면 된다
그런데 45보다 작을 경우 시에도 변화가 생긴다
10시 10분보다 45분 이른 시간은 9시 25분이다.
이것은 어떻게 구하냐!
10시에서 -1을 하고 10분 + 60분 - 45분을 한다
결국은 원래 분에서 +15분을 하라는 것이다.
그런데 또 한가지 고려할 점은 시가 0시 ㅇㅇ분일때를 고려해야한다
0시 30분이라면 위 계산처럼 -1을 하면 시가 -1이 되는데 이경우는 23시로 바꿔주면 된다.
0시일 경우는 한번 뿐이기 때문이다.
정리
1. 분이 45보다 같거나 크면 분에서 45만 빼면 됨
2. 분이 45보다 작고 시가 0보다 크면 시-1, 분+15를 하면 됨
3. 시가 0이고 분이 45보다 작으면 23시 분+15가 됨
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 4344 평균은 넘겠지 파이썬 풀이 (0) | 2021.06.15 |
---|---|
[백준] 1110 더하기 사이클 파이썬 풀이 (1) | 2021.06.15 |
[백준] 백준 문제 제출할 때 어떻게 하는지 모르는 사람~! input()이 대체 뭔데! 입력값을 어떻게 테스트 하는데! 백준 제출 하는 법 (0) | 2021.06.15 |
[백준] 2588 곱셈 파이썬 풀이 (0) | 2021.06.15 |
[백준] 10869 사칙연산 파이썬 풀이 (0) | 2021.06.15 |