이 문제 솔직하게 말하면 11번 틀리고 처음부터 다시 알고리즘 세워보자. 해서 차근차근히 하니깐 푼 문제라서

따로 다루겠다.

 

일단 내가 그 전에 했던 알고리즘들을 보면 왜 안 되는지 보도록 하겠다.

A, B = map(int, input().split())
C = int(input())

if B+C < 60:
    B = B+C
    
elif B+C >= 60:
    plus_A = (B+C) // 60
    plus_B = (B+C) % 60
    A += plus_A
    
    if A >= 24:
        A = abs(24-A)
        B = plus_B

    else:
        if (B+C) % 60 == 0:
            B = 0
print("{} {}".format(A,B))

자자 여기서 보면 첫째 줄에 map을 통해서 잘 변수를 설정해줬고 두 번째 줄에도 변수를 잘 설정해주었다. 

그런데 문제는 if 절부터 시작이었는데 여기까지도 괜찮았는데 elif 절부터 약간 꼬이기 시작했다.

elif  - if 를 보면 abs(24-A)가 잘못된 거 같다. 솔직히 백준의 예제를 입력하고 출력하면 잘 나왔는데 이건 A가 24~48까지 있을 거라고 생각한 나의 착각이었고 A는 24, 47, 80 뭐든지 가능한데 24-A 절댓값을 하면 안 나오는게 당연하다.

그래서 고친 결과는! 

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

correct_M = M + T

if correct_M >= 60:
    M = correct_M % 60
    H += correct_M // 60
    
    if H >= 24:
        H = H % 24

else:
    M = M + T
print(H, M)

이거다.

절댓값 부분을 나머지를 구하는 부분으로 바꾸고 쓸데없이 코딩한 부분은 없애고 하니 이렇게 깔끔하게 나왔다.

 

인터넷의 도움을 받지 않고 혼자 풀어서 기분이 굉장히 좋은 상태이다.

오늘 잘 잘 것 같다. 흠흠

+ Recent posts