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()은 빈 문자열을 반환한다.
또한, 수행시간도 더 빠르기도 하고, 시간초과 에러가 잘 나지도 않는다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제번호: 1008번> 파이썬 - A/B (0) | 2020.10.12 |
---|---|
<백준 문제번호: 1330번> 파이썬 - 두 수 비교하기 (0) | 2020.10.12 |
<백준 문제번호: 1000> 파이썬 - A+B (0) | 2020.01.17 |
<백준 문제번호: 10718>파이썬 - We love kriii (0) | 2020.01.17 |
<백준 문제번호: 10171> 파이썬 - 고양이 (0) | 2020.01.17 |