본문 바로가기
코딩 테스트/백준

[백준 2884번] 알람 시계 (python)

by SH_L 2023. 8. 13.
반응형

[문제]

 

 

 

 

[코드]

 

H, M = map(int, input().split())

if M < 45:
    M += 15
    H -= 1

    if H < 0:
        H += 24
        
    print(H, M)

else:
    M -= 45
    print(H, M)

 

 

 

[풀이]

 

H, M = map(int, input().split())

 

map(int, input().split())를 사용하여 입력받은 값을 공백을 기준으로 분리하여 변수 H, M에 차례대로 저장한다.

 

45분 일찍 알람을 설정해야 하기 때문에 원래 시간보다 45분 앞선 시간을 출력해야 한다. 이때, M이 45보다 작을 때와 45보다 크거나 같을 때의 두 가지 경우로 나눠 시간 계산을 진행한다.

 
if M < 45:
    M += 15
    H -= 1

    if H < 0:
        H += 24
        
    print(H, M)

 

M이 45보다 작을 경우 M에다 15를 더하고 H에다 1을 빼주어 계산을 진행한다. 예를 들어 H, M이 각각 10, 10일 때 M에다 15를 더하고 H에다 1을 뺀 9, 25가 45분 앞선 시간이 되는 것이다.
 
 
이때, H는 24시간 표현을 사용하고 있기 때문에 H의 값이 0보다 작을 경우 24를 더해준다.

 

else:
    M -= 45
    print(H, M)

 

M이 45보다 크거나 같을 경우 M에다 45를 빼주어 계산을 진행한다. H의 값은 변함이 없다.

반응형