알고리즘/백준 문제풀이

[백준] 2884 알람시계 파이썬 풀이

자바칩 프라푸치노 2021. 6. 15. 21:26

https://www.acmicpc.net/problem/2884

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net


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