<문제 링크>
https://www.acmicpc.net/problem/11726
<정답 코드>
1
2
3
4
5
6
7
8
|
n = int(input())
nums = [1,1]
for i in range(2, n+1):
nums.append(nums[i-2] + nums[i-1])
print(nums[n] % 10007)
|
cs |
문제를 읽어보고 규칙성이 있을 것 같아 몇 개를 그림으로 그려 보니 아래와 같았다.
n | 방법의 수 |
2 | 2 |
3 | 3 |
4 | 5 |
5 | 8 |
피보나치 수로 진행되는 것이 보여 간단하게 문제를 해결했다.
DP(동적 프로그래밍) 문제였는데, 큰 문제를 작은 문제로 쪼개는 원리가 피보나치에도 적용되어 있었다.
DP를 얼른 공부해야겠다.
'프로그래밍 > Python' 카테고리의 다른 글
파이썬_zip() 함수 (0) | 2024.06.04 |
---|---|
백준_python 1931번 회의실 배정 (리스트 정렬) (0) | 2024.05.31 |
itertools(permutations, combinations, product) 정리 (0) | 2024.05.27 |
백준_python 16953번 A → B (BFS, 그래프 깊이) (1) | 2024.05.20 |
백준_python 2468번 안전 영역 (BFS, DFS, 부르트포스 그래프) (0) | 2024.05.13 |