문제
[Python] 백준 1904번 01타일 성공
01타일 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 256 MB 14112 5932 4958 41.399% 문제 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리
chancoding.tistory.com
입력
- 첫 번째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 1,000,000)
출력
- 첫 번째 줄에 지원이가 만들 수 있는 길이가 N인 모든 2진 수열의 개수를 15746으로 나눈 나머지를 출력한다.
입력 예제
4
출력 예제
5
문제 풀이
- 조건을 살펴보면 i번째 가능한 타일의 개수는 (i - 1)의 개수 + (i - 2)의 개수이다.
- 따라서 점화식은 아래와 같다.
dp[i] = (dp[i - 1] + dp[i - 2]) % 15746

코드
n = int(input())
dp = [0] * 1000001
dp[1] = 1
dp[2] = 2
for i in range(3, n + 1):
dp[i] = (dp[i - 1] + dp[i - 2]) % 15746
print(dp[n])'Algorithm > Dynamic Programming' 카테고리의 다른 글
| [Python] 백준 11053번 가장 긴 증가하는 부분수열 (0) | 2023.02.10 |
|---|---|
| [Python] 백준 1463번 1로 만들기 (0) | 2023.02.09 |
| [Python] 편집거리 (0) | 2023.02.09 |
| [Python] 퇴사 (0) | 2023.02.08 |
| [Python] 못생긴 수 (0) | 2023.02.08 |