BAEKJOON #11726 2xn 타일링

2020. 7. 9. 16:28개발노트

이 문제의 저작권은 BAEKJOON에 있습니다.

 

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

문제는 위 링크에서 확인할 수 있습니다.

 

get_num = int(input())
mylist = [0, 1, 2]

for i in range(3, get_num + 1):
    mylist.append(mylist[i-1] + mylist[i-2])

print(mylist[get_num] % 10007)

타일을 붙이는 규칙을 알면 쉬운 문제였습니다.

직접 그려가면서 찾아보면 규칙을 찾기 쉽습니다.

 

get_num output mylist
1 1 [0, 1, 2]
2 2 [0, 1, 2]
3 3 [0, 1, 2, 3]
4 5 [0, 1, 2, 3, 5]
5 8 [0, 1, 2, 3, 5, 8]

 

n은 1부터 1000까지 값이 들어오기 때문에

n이 0일때의 값은 고려하지 않았습니다.

 

규칙은 get_num이 3, 4, 5 일때 mylist를 보고 규칙을 찾을 수  있습니다.

mylist의 [i-1]맨 끝 요소 그리고 [i-2]그 앞의 요소을 더한 값이 다음에 리스트에 추가될 요소입니다.

 

3부터 get_num까지 for문을 돌며 mylist에 mylist[i-1] + mylist[i-2]값을 추가하고

정답으로 mylist의 맨 마지막 값을 출력합니다.