본문 바로가기

코딩테스트/Python

[Python] 백준 #1904 - 01타일

문제


https://www.acmicpc.net/problem/1904

 

1904번: 01타일

지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이

www.acmicpc.net

 

 

 

풀이


n = int(input())
d = [0]*(n+1)
d[0]=1
d[1]=1

for i in range(2,n+1):
    d[i] = (d[i-1] + d[i-2])%15746

print(d[n])

 

 

 

d[3]

 

  1. d[2]의 숫자들의 마지막에 1을 붙인 것
  2. d[1]의 숫자들의 마지막에 00을 붙인 것

 

=> d[3] = d[2] + d[1]

 

 

 

d[4]

 

  1. d[3]의 숫자들의 마지막에 1을 붙인 것
  2. d[2]의 숫자들의 마지막에 00을 붙인 것

 

=> d[4] = d[3] + d[2]

 

 

 

이렇게 구해가다 보면 d[n] = d[n-1] + d[n-2] 라는 식이 나온다.

 

d[2]를 구하기 위해서 d[0]에 1을 넣어주었다.