본문 바로가기

TIL

23.07.19 - 백준 2292번 with Python


문제를 파악하고 연습장에 적어보며 어떤 규칙이 있나 보니 등비수열의 규칙을 가지고 있었다.

방향을 잡았으니 코드만 적으면 쉽게 풀릴 줄 알았으나, 내가 찾은 규칙을 코드로 옮겨가는 과정이 순탄하지 않았다. 왜 안되는지 머리를 싸매며 투자한 시간이 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