출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

24시간인 우리 알람 시계를 기준으로 45분을 먼저 일어난다는 것이다. 문제는 24시가 0시로 표현되므로, 예를 들어 00시 23분에 일어나야 된다면 23시 38분에 일어나게끔 알람 시계를 맞추게 하면 된다.

 

따라서, H가 0이고 M 이 45분보다 미만일 경우, 그리고 H가 0보다 크고, M이 45분 보다 작을 경우, 그리고 나머지의 경우를 나누어서 if문을 쓰면 될 것이다. 내가 짠 코드는 다음과 같다:

import sys

H, M = map(int, sys.stdin.readline().split())

if H == 0 and M < 45:
    print("23" + " " + str(M+15))
elif H > 0 and M < 45:
    print(str(H-1) + " " + str(M+15))
else:
    print(str(H) + " " + str(M-45))

여기서는 이제 import sys를 통한 sys.stdin.readline()을 사용하기로 했다. Velog의 설명에 따르면, input()과 sys.stdin.readline()의 차이점은 다음과 같다:

 

sys.stdin.readline()은 사용자의 입력을 받지만 개행 문자도 입력 받을 수 있다. input()은 더 이상 입력이 없는데도 수행될 경우 EOFerror(end-of-file error)이 발생하지만, sys.stdin.readline()은 빈 문자열을 반환한다.

 

또한, 수행시간도 더 빠르기도 하고, 시간초과 에러가 잘 나지도 않는다.