[백준 BOJ_9095] 1, 2, 3 더하기 Python 풀이

출처: 백준 온라인 저지

문제

image image

풀이

동적계획법으로 풀었습니다.

cache는 다음과 같습니다.

cache[i] = 1, 2, 3의 합으로 정수 i를 나타낼 수 있는 방법의 수 

4부터 10까지 각각 다음과 같은 세 가지 경우의 수를 더해주면 됩니다.

  • i-1를 만들 수 있는 방법에 1을 더하여 i 만들기
  • i-2를 만들 수 있는 방법에 2를 더하여 i 만들기
  • i-3를 만들 수 있는 방법에 3를 더하여 i 만들기

세 가지 방법을 모두 더한 값을 cache[i]에 저장해준 뒤 cache[n]을 출력해줍니다.

코드

T = int(input())

cache = [0 for _ in range(11)]

cache[1] = 1 # 1
cache[2] = 2 # 1 + 1, 2
cache[3] = 4 # 1 + 1 + 1, 2 + 1, 1 + 2, 3

for i in range(4, 11):
  cache[i] = cache[i-1] + cache[i-2] + cache[i-3]

for _ in range(T):
  n = int(input())
  print(cache[n])

Leave a comment