문제를 파악하고 연습장에 적어보며 어떤 규칙이 있나 보니 등비수열의 규칙을 가지고 있었다.
방향을 잡았으니 코드만 적으면 쉽게 풀릴 줄 알았으나, 내가 찾은 규칙을 코드로 옮겨가는 과정이 순탄하지 않았다. 왜 안되는지 머리를 싸매며 투자한 시간이 30분이 넘어갈 무렵 다시금 연습장과 코드를 비교해보니 분명 연습장에는 등비수열의 규칙을 적어두고 코드로는 등차수열을 구현해 놓으니 될 리가 있나...
나 자신에게 참 바보같다는 생각이 들기도 하고 그래도 용케 혼자서 찾아냈다는 안도감도 들었다.
코딩테스트 문제는 이렇게 풀어나갈 때 그 맛이 있는 것 같다. (실제 테스트 때는 시간이 있다는 점이 걱정이 되긴 한다.)
아래는 조잡하지만 내가 만든 코드이다.
N = int(input())
i = 1
answer = 0
for x, y in enumerate(range(N)):
if N == 1:
answer = 1
break
elif N-i > 0:
i += 6*(x+1)
answer += 1
elif N-i <= 0:
answer += 1
break
print(answer)
'TIL' 카테고리의 다른 글
23.07.25 - 백준 2869번 with Python (0) | 2023.07.25 |
---|---|
23.07.24 - 백준 1193번 with Python (0) | 2023.07.25 |
23.07.18 (0) | 2023.07.19 |
23.07.17 (0) | 2023.07.18 |
23.07.13 (0) | 2023.07.14 |