문제
코드
My answer
n=int(input())
d=[0]*(n+1)
d[1]=1
if(n>=2):
d[2]=2
for i in range(3,n+1):
d[i]=d[i-1]+d[i-2]
print(d[n]%10007)
Another answer
a=b=1
for i in range(int(input())):
a,b=b,a+b
print(a%10007)
풀이
이번 동적프로그래밍 문제는 피보나치 수열이랑 규칙이 똑같았다. 아래 코드는 파이썬이라서 가능한 코드인 것 같다.
a,b=b,a+b 이게 내 코드보다 훨씬 빠른데 일일이 배열에 입력하면서 불러오지도 않고 메모리도 난 n만큼 늘어나는 반면 아래 코드는 a,b에 계속 대입해주면되서 훨씬 깔끔한 것 같다.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #9095- 1,2,3 더하기 (0) | 2021.12.17 |
---|---|
[Python] 백준 #11727- 2xn타일링 2 (1) | 2021.12.12 |
[Python] 백준 #1463- 1로 만들기 (0) | 2021.12.12 |
[Python] 백준 #1783 - 병든 나이트 (0) | 2021.12.11 |
[Python] 백준 #6588- 골드바흐의 추측 [try_again] (0) | 2021.12.09 |