본문 바로가기

학부/코딩테스트 준비

백준 (단계별 풀어보기 2단계) 2525문제, 파이썬

728x90
반응형


나의 답변


a,b = map(int,input().split())
c = int(input())

if (b+c)%60==0:
    if a+((b+c)//60) >= 24 :
        print(a+((b+c)//60)-24,0)
    else:
        print(a+((b+c)//60), 0)
elif (b+c)>60 and (b+c)%60!=0:
    if a+((b+c)//60) >= 24 :
        print(a+((b+c)//60)-24, (b+c)%60)
    else:
        print(a+((b+c)//60), (b+c)%60)
else:
    print(a,b+c)

정답은 맞긴 했지만, if문이 과도하게 많이 사용된거 같았고 코드가 깔끔해 보이지 않았다. 

따라서, 다른 사람들의 답변을 참고 했고 다음과 같은 답변들을 얻을 수 있었다.

 


다른 사람들의 답변


 

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

H += timer // 60
M += timer % 60

if M >= 60:
    H += 1
    M -= 60
if H >= 24:
    H -= 24

print(H,M)

쉽게 timer를 설정해두고, 깔끔하게 코드를 짰다.

코드의 목적이 실행에 있긴 하지만, 코드 리팩토링 또한 중요한 과정이라고 생각하므로 조금 더 단순한 코드를 짤 수 있도록 공부해야겠다.

728x90
반응형