꾸준히 합시다

백준 파이썬 2884번: 알람 시계 본문

코딩 테스트 문제 풀이

백준 파이썬 2884번: 알람 시계

tturbo0824 2021. 3. 9. 21:26

www.acmicpc.net/problem/2884

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

문제 유형: 수학, 사칙연산

 

# Solution 1

h, m = map(int, input().split())
new = m - 45

if new < 0:
    new += 60
    if h == 0:
        h = 23
    else:
        h -= 1
    
print(h, new)

처음 생각난 대로 푼 것.

 

h(시간)과 m(분)을 입력받고, 바로 m에 45를 뺀 값을 new라는 변수에 지정해준다.

만약 new가 음수라면 60을 더해주고 시간도 한 시간 전으로 바뀌는 것이기에 h에서 1을 빼준다.

예를 들어 설정해 둔 시간이 10시 10분이라면 현재 시간은 9시 25분이 된다. ( m: 10-45+60=15, h: 10-1 )

설정 시간이 0시 30분이라면 0에 1을 빼준 값인 -1이 시간이 되는 것이 아니라 23으로 바뀌는 것임으로 예외처리해준다.

 

# Solution 2

h, m = map(int, input().split())

if m > 44:
    print(h, m - 45)
elif m < 45 and h > 0:
    print(h - 1, m + 15)
else:
    print(23, m + 15)
Comments