반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 코어뱅킹
- 채널계
- 디렉토리계층구조
- oracleapex
- 학점은행제무료강의
- 계정계
- 코딩테스트
- 개인프로필스튜디오창업
- 렌탈스튜디오창업
- 맥북환경설정
- 모놀리식
- 인강빨리듣기
- Homebrew
- 은행IT
- MSA
- python
- 컴퓨터공학학사취득
- 프로그래머스
- 오라클
- 맥북
- jdk17
- fastapi
- 맥북셋팅
- union
- SQL
- it자격증
- jdk
- 학점은행제
- Pass By Value
- DB
Archives
- Today
- Total
개발머해니
[파이썬] 피보나치 수열 (3) 공간 최적화 - 다이나믹 프로그래밍 ★ 본문
728x90
반응형
실습 설명
n번째 피보나치 수를 계산하기 위해서는 가장 최근에 계산한 두 값만 알면 됩니다.
공간 복잡도 O(1)로 fib_optimized 함수를 작성하세요.
실습 결과
def fib_optimized(n):
current = 1
previous = 0
# 반복적으로 위 변수들을 업데이트한다.
for i in range(1, n):
print("%i : cur[%d], pre[%d]" %(i,current, previous))
current, previous = current + previous, current
# n번재 피보나치 수를 리턴한다.
return current
# 테스트 코드
print(fib_optimized(16))
print(fib_optimized(53))
print(fib_optimized(213))
1 : cur[1], pre[0]
2 : cur[1], pre[1]
3 : cur[2], pre[1]
4 : cur[3], pre[2]
5 : cur[5], pre[3]
6 : cur[8], pre[5]
7 : cur[13], pre[8]
8 : cur[21], pre[13]
9 : cur[34], pre[21]
10 : cur[55], pre[34]
11 : cur[89], pre[55]
12 : cur[144], pre[89]
13 : cur[233], pre[144]
14 : cur[377], pre[233]
15 : cur[610], pre[377]
987
53316291173
146178119651438213260386312206974243796773058
728x90
반응형
'알고리즘' 카테고리의 다른 글
[파이썬] 새꼼달꼼 장사 (2) Tabulation - 다이나믹 프로그래밍 ★ (0) | 2023.09.19 |
---|---|
[파이썬] 새꼼달꼼 장사 (1) Memoization - 다이나믹 프로그래밍 ★ (0) | 2023.09.19 |
[파이썬] 피보나치 수열 (2) tabulation로 구현 - 다이나믹 프로그래밍 ★ (0) | 2023.09.18 |
[파이썬] 피보나치 수열 (1) memoization로 구현 - 다이나믹 프로그래밍 ★ (0) | 2023.09.18 |
[파이썬] 퀵정렬 (3) 퀵 정렬 더 멋있게 구현하기 - 분할정복 ★ (0) | 2023.09.18 |