본문 바로가기

코드업 문제집 파이썬 if~else 1173 : 30분전

관리하수달 2026. 9. 2.

[문제]

수호는 30분 전으로 돌아가고 싶은 1人 이다.

공백을 기준으로 시간과 분이 주어진다.

그러면 이 시간을 기준으로 30분전의 시간을 출력하시오.

예)

12 35  =====> 12 5

12 0 ======> 11 30

11 5 ======> 10 35

0 10 ======> 23 40

 

[문제 해설(핵심)]

현재 시간에서 30분 전의 시간을 구하면 된다.

-> 분이 30 이상이면 그냥 30을 빼면 됨
-> 분이 30 미만이면 이전 시간으로 넘어가야 함
-> 만약 현재 시간이 0시라면 이전 시간은 23시

 

[문제 풀이]

현재 분이 30 이상인지 확인

30 이상이면 분 - 30

30 미만이면 시간 - 1, 분 + 30

시간이 -1이 되면 23으로 변경

시간과 분 출력

 

[사용된 개념 설명]

input() : 값을 입력받기
split() : 공백을 기준으로 나누기
int : 입력받은 문자를 정수로 변환하기
map() : 여러 값에 같은 변환을 적용하기
if / else : 조건에 따라 서로 다른 코드 실행하기

hour, minute = map(int, input().split())

if minute >= 30:
    minute = minute - 30
else:
    hour = hour - 1
    minute = minute + 30

    if hour < 0:
        hour = 23

print(hour, minute)

댓글