def solution(n):
answer = 0
stack = [0, 1]
for i in range(100001):
stack.append(stack[-1] + stack[-2])
if i == n:
answer = stack[n] % 1234567
break
return answer
스택에 미리 정의 된 0, 1 번째 수를 작성하고 피보나치 수는 맨마지막 값과 그 마지막 값의 전 값을 더하기 때문에 해당하는 값을 스택에 추가해준다.
그리고 n의 값과 더해준 값의 인덱스가 같다면 break를 해줘서 효율성을 높여준다.
나는 범위를 문제에 맞게 100000 까지 순회하고 해당 인덱스에서 break하는 식으로 작성했지만, 범위를 range(n+1)로 설정한다면 좀 더 좋은 코드를 작성 할 수 있었을 것 같다.
'Programmers' 카테고리의 다른 글
[프로그래머스 / 파이썬 풀이] 구명보트 (0) | 2023.02.13 |
---|---|
[프로그래머스 / 파이썬 풀이] 다음 큰 숫자 (0) | 2023.02.10 |
[프로그래머스 / 파이썬 풀이] 숫자의 표현 (0) | 2023.02.10 |
[프로그래머스 / 파이썬 풀이] 최솟값 만들기 (0) | 2023.02.09 |
[프로그래머스 / 파이썬 풀이] H-index (0) | 2023.02.08 |