coding test

백준 2884번 알람시계

ron_nie 2023. 7. 2. 14:28
728x90

1. 문제

2. 접근

1. M이 45보다 크다면(예를 들면 50분) -45를 해주면 된다.

2. M이 45보다 작다면(입력1 10분) 음수가 되어서 정상적인 시간이 안된다(조건식 필요함)

2-1. 분단위가 45보다 작을 때  H에는 1을 빼준다

2-2. M에는 60을 더해준다. 60을 더해주는 이유는 분침을 한바퀴 더 돌려서 60보다 크거나 같게 만들어 음수가 안나오게끔 하는 방식이다. 그 상태에서 분을 빼주면 정확한 시간이 나온다.

3. 만약 H가 0이라면 1을 뺏을 때 -1이 나오기 때문에 시간이 이상해진다.

3-1. H는 23을 할당해준다. 45분을 더 적게 맞춘다는 것은 한시간이 넘지 않기 때문에 -2를 할일이 없다. 0시에서 한시간 전은 23시 이기 때문에 23을 할당한다

3-2. M에는 똑같이 60을 더해준다 2-2와 같은 방법이다.

3. 풀이

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

if M < 45:
    if H == 0:
        H = 23
        M += 60
    else : 
        H -= 1
        M += 60
        
print(H, M - 45)
반응형