알고리즘/백준

백준 2884번

반딧불이 코딩 2022. 8. 13. 05:40

 

#오류 코드

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

min = H * 60 + M
min_1 = min - 45
min_1 / 60 == X
min_1 % 60 == Y

print(X)
print(Y)

#정답 코드

H,M = map(int,input().split())
if M>44:
    print(H,M-45)    #주어진 분이 45이상이면 H를 안 건드려도 됨 
elif M<45 and H>0:
    print(H-1,M+15)  #주어진 분이 45보다 작고 H가 0보다 크면 시간이 1 줄어들고 60을 
                     #기준으로 한 분에서 45만큼 줄어드므로 결국 M+15가 됨 
else:
    print(23,M+15)   #else는 M<45, H가 0인 상황을 의미 즉 자정이 조금 지난 상태
                     #이것도 결국 H-1로 23시, M+15가 된다.

처음에 시간을 분단위로만 표시하여 주어진 시간에 45분을 빼고 이 수를 다시 정의한 다음, 다시 60으로 나누어 시각과 분을 나타내려고 했다. 접근 방식은 괜찮았으나 자정이 조금 지난 0시로 표기되는 경우, 주어진 분이 45분보다 적을 경우

0시 -> 23시가 되어야 하는데 오류가 났다.

'알고리즘 > 백준' 카테고리의 다른 글

백준 8393번  (0) 2022.08.14
백준 2525번  (0) 2022.08.14
백준 14681번  (0) 2022.08.13
백준 2753번  (0) 2022.08.13
백준 3003번  (0) 2022.08.12