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의 맨 마지막 값을 출력합니다.