문제풀면서 가장 열받게 만드는 요인은 맞왜틀 시전하면서 틀린 요인을 못 찾을 때이다.
코린이로서 오븐 시계 풀면서 저질렀던 실수는 정수처리에 있었다.
a,b = map(int,input().split(" "))
c = int(input())
if c>=60:
d = c/60 #### 시간 더하기
e = c%60 #### 분 더하기
a += d
b += e
if b >= 60:
f = b%60
g = b/60
a += g
b = f
if a >= 24:
a = a%24
print(int(a),int(b))
위에는 내가 짜낸 코드이다.
물론 if c>=60: 부분은 필요가 없는 부분인데 역시 신생 코린이 답다
아무튼 머리속으로는 대충 알맞은거 같았으나
계속 틀렸던 이유는 정수 처리를 마지막 print()에서 대충 처리해서 틀렸다.
위에 반례는
22 30
119
를 치면서 반례를 찾았다. 보통이라면은 0 29가 나와야하지만 1 29가 나와서 문제점을 찾았다.
g 부분을 60으로 나누면 119는 나눠떨어지지 않고 소수점으로 계속 이어간다. 거기다가 또 b를 60으로 나눠서 소수점 끼리 더하면 소수점이 올림처리해가지고 정수가 1이 더 늘어나게 되었다.
결국 최종본은 아래와 같이 수정했다
a,b = map(int,input().split(" "))
c = int(input())
b +=c
if b >= 60:
f = b%60
g = int(b/60)
a += g
b = f
if a >= 24:
a = a%24
print(a,b)
간단한 문제에서도 괜히 어렵게 생각하다가 코드도 길어지고 난잡해졌다. 해결해서 다행이다
더 보완할 점이 있다면 언제든 얘기 해 주시면 감사하겠습니다.
'알고리즘 문제들 으악 > 백준' 카테고리의 다른 글
[python]1065번 내가 한 풀이 (0) | 2022.03.24 |
---|---|
[python]4673번 문제, 고수님들은 멋있다. (0) | 2022.03.23 |
[python]4344번, 무조건 소수점 n자리 나오게 하기 (0) | 2022.03.21 |
[python]8958번 내 풀이와 replace를 이용한 다른 풀이 (0) | 2022.03.20 |
[python]1110번 괜히 어렵게 풀었다. (0) | 2022.03.19 |