
백준 2884번 문제 입니다.
origTime = input()
hour = int(origTime.split(' ')[0])
min = int(origTime.split(' ')[1])
if min - 45 >= 0:
min = min - 45
print(hour, min)
elif min - 45 < 0:
min += 15
if hour == 0:
hour = 23
print(hour, min)
else:
hour -= 1
print(hour, min)
첫째 케이스는 가장 쉽게 풀 수 있다. 첫번째 if문에서 볼 수 있듯이 hour(시)에는 손대지 않고 분만 빼기 연산 해준다. 두번째 케이스는 또 두가지 경우로 나뉜다.
우선, 시간 계산을 할 때 분이 0보다 작을때 45분을 뺀 뒤 분(min)이 같는 공통적인 특징을 확인할 수 있다.
(ex. 35분 -> 50분, 20분 -> 35분, 10분 -> 25분)
그러므로 주어진 분(min)에서 15를 더해주면 된다. 따라서 min += 15이다. 이제 시(hour)를 계산해야하는데 첫번째의 경우 0시 이전은 23시이므로 hour을 23으로 확정지을 수 있다. 그렇지 않은 경우에는 주어진 수에서 -1 연산을 해주면 된다.
# 수정 전
origTime = input()
hour = int(origTime.split(' ')[0])
min = int(origTime.split(' ')[1])# 수정 후
hour, min = map(int, input().split()) 