이 문제 솔직하게 말하면 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)
이거다.
절댓값 부분을 나머지를 구하는 부분으로 바꾸고 쓸데없이 코딩한 부분은 없애고 하니 이렇게 깔끔하게 나왔다.
인터넷의 도움을 받지 않고 혼자 풀어서 기분이 굉장히 좋은 상태이다.
오늘 잘 잘 것 같다. 흠흠
'알고리즘' 카테고리의 다른 글
백준 파이썬 - 배열 2 (2) | 2023.10.03 |
---|---|
백준 파이썬 - 배열 (0) | 2023.09.16 |
백준 파이썬 - 1330, 9498, 2753, 14681, 2884 (0) | 2023.07.05 |
백준 파이썬 - 10430, 2588, 10171, 10172 (0) | 2023.06.09 |
파이썬 - 입출력과 사칙연산(10869) (0) | 2023.02.18 |