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 |
Tags
- SessionAttribute
- Database
- reversing.kr
- 인턴 후기
- react
- EER
- Layered Architecture
- jsp
- 행정지역 DB
- DBMS
- 소프트웨어 개발보안 경진대회
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- spring
- 인턴 지원
- 3단계 지역 DB
- Django
- 방명록 만들기
- 소개딩
- 동읍면 DB
- JSTL
- Forensic 절차
- PyAmdecoder
- riceteacatpanda
- 정보보호병 후기
- frontend
- webhacking 처음
- mysql
- restapi
- 메모리 포랜식
- 네이버 인턴
Archives
- Today
- Total
웹찢남
[백준 1003 피보나치 함수] PYTHON 본문
fib(0)= fib(0) 1 0
fib(1)= fib(1) 0 1
fib(2)= fib(1) + fib(0) 1 1
fib(3)= fib(2) + fib(1) = fib(1) + fib(0) + fib(1) 1 2
fib(4)= fib(3) + fib(2) = fib(1) + fib(0) + fib(1) + fib(1) + fib(0) 2 3
위와 같이 피보나치 처럼 0과 1의 호출횟수가 fib(n-1) + fib(n-2)라는 것을 알 수 있다.
문제를 풀다 보니 어차피 진짜 피보나치 값인 fib(n),fib(n+1)과 동일하여 해당 방식으로 풀었으나 시간초과..
결국은 0과 1리스트를 만들어 풀었다.
from sys import stdin
zero_arr=[1,0,1]
one_arr=[0,1,1]
def sol(n):
length=len(zero_arr)
if (length<=n):
for i in range(length,n+1):
zero_arr.append(zero_arr[i-1]+zero_arr[i-2])
one_arr.append(one_arr[i-1]+one_arr[i-2])
print(zero_arr[n],one_arr[n])
if __name__ == "__main__":
t=int(stdin.readline())
for _ in range(t):
tmp=int(stdin.readline())
sol(tmp)
CLEAR!!
'백준 Algorithm' 카테고리의 다른 글
[백준 1149 RGB거리 문제] PYTHON (0) | 2021.04.14 |
---|---|
[백준 9095 1,2,3 더하기 문제] PYTHON (0) | 2021.04.13 |
[백준 11726 2xn 타일링] PYTHON (0) | 2021.04.13 |
[백준 1260 DFS와 BFS] PYTHON (0) | 2021.02.26 |
[백준 1916 최소비용 구하기] PYTHON (0) | 2021.02.26 |
Comments