티스토리 뷰
problem
문제링크: https://www.acmicpc.net/problem/11726
알고리즘 : 다이나믹 프로그래밍
입력 - n
solution
2*n 크기의 직사각형을 2*1 의 타일로 채우는 경우의 수는 n+1 번째의 피보나치수와 같다.
- dp[] 배열의 1, 2번째에 피보나치수 1, 1 을 할당해둔다.
- n까지 피보나치 수를 구해 10007로 나눈 나머지 값을 dp의 i 번째에 넣는다.
- n+1 까지 피보나치 (수 % 10007) 을 한 값을 구하고 dp[n]을 출력한다.[
[code]
n = int(input())
dp = [1, 1]
for i in range(2, n + 1):
dp.append((dp[i - 1] + dp[i - 2]) % 10007)
print(dp[n])
'algorithm > 백준' 카테고리의 다른 글
[c++] 백준 1753번: 최단경로 (0) | 2022.01.16 |
---|---|
[C++] 백준 21758번: 꿀 따기(2021 정보올림피아드 중등부 2교시 1번) (0) | 2021.07.24 |
[C++]백준 1187번: 최소 스패닝 트리 (0) | 2021.06.06 |
[python]백준 2231번: 분해합 (0) | 2021.05.02 |
[python]백준 6603번: 로또 (0) | 2021.05.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 4
- 21758
- 피보나치
- 스택
- 직업군 추천
- forensic
- 쇠막대기
- 더하기
- boj
- web
- c++
- 넓이
- 꿀따기
- 파이썬
- 카카오 2021 블라인드 테스트
- 백준
- HackCTF
- 괄호
- 다익스트라
- python
- 나머지
- 👼
- math
- 7567
- FIBO
- 1
- 프로그레머스
- openCV
- programmers
- 2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함