Cometin'

BOJ-9095 - Python

2020-09-20 at Algorithm category

숫자 1부터 10 이하의 숫자가 입력됐을 때 1, 2, 3만을 이용하여 더하여 나타냈을 때의 경우의 수를 출력하는 문제. 첫 생각은 n을 1로만 더한 식을 이용하여 1 + 1 > 2, 2 + 1 > 3으로 모든 경우에 적용하여 풀 생각을 하였으나 비효율적이라 생각되어 고민 후에 1, 2, 3의 경우의 수를 더하면 4의 경우의 수이며 2, 3, 4의 경우의 수를 더하면 5의 경우의 수인 것을 알게 되었다. l[-3::]와 같이 리스트를 슬라이싱하여 풀었다.

l = [1,2,4]

for _ in range(7):
    l.append(sum(l[-3::]))

for _ in range(int(input())):
    print(l[int(input())-1])

hyesungoh

Personal blog by hyesungoh.

I like to share my knowledge for those who wandering in issue.