알고리즘/백준

파이썬(python) 2530번 인공지능 시계

HeyTeddy 2021. 12. 21. 15:53
반응형

문제 링크

https://www.acmicpc.net/problem/2530

 

2530번: 인공지능 시계

첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0

www.acmicpc.net

첫 코드 (오류)

import sys

A, B, C = map(int, sys.stdin.readline().split())
D = int(sys.stdin.readline())

min_ = D//60
sec_ = D%60
B = B+min_
C = C+sec_

if C >= 60:
    C -= 60
    B += 1
    
if B >= 60:
    B = B%60
    A = A+(B//60)
    
if A >= 24:
    A = A%24
    
print(A, B, C)

잘 코딩한 것 같은데 알고보니, 16번째 줄과 17번째 줄을 위치를 바꿔야 했다.

입력값 23 48 59 그리고 2515를 대입했을 때, 위 코드처럼 실행하면 16번째 줄은 B = 90%60 (3), 17번째 줄의 B값이 90이여만 코드가 정상적으로 진행되는데 B를 30으로 선언해버려서 23+(30//60)은 23값으로 오류가 발생한다.

 

따라서, 먼저 A = A+(B//60) 선언하고, B를 30으로 선언하면 정상적으로 작동된다.

 

수정된 코드 (정상)

 

import sys

A, B, C = map(int, sys.stdin.readline().split())
D = int(sys.stdin.readline())

min_ = D//60
sec_ = D%60
B = B+min_
C = C+sec_

if C >= 60:
    C -= 60
    B += 1
    
if B >= 60:
    A = A+(B//60)
    B = B%60
if A >= 24:
    A = A%24
    
print(A, B, C)
반응형