[Python] 알고리즘/Silver
[1904] 01타일 (Python)
-Becca-
2021. 11. 17. 23:02
[문제]
https://www.acmicpc.net/problem/1904
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이
www.acmicpc.net
알고리즘 분류는 다이나믹 프로그래밍 입니다.
N | 2진 수열 | 개수 |
1 | 1 | 1 |
2 | 00, 11 | 2 |
3 | 001, 100, 111 | 3 |
4 | 0000, 0011, 1001, 1100, 1111 | 5 |
5 | 00001, 00100, 10000, 00111, 10011, 11001, 11100, 11111 | 8 |
이 과정을 거치면 점화식을 구할 수 있습니다.
[코드]
import sys
li = [1, 2]
for i in range(2, 1000000):
li.append((li[i - 2] + li[i - 1]) % 15746)
N = int(sys.stdin.readline())
print(li[N - 1])
이 문제의 점화식은 N = N - 2 + N - 1 입니다.