[백준_python] 1, 2, 3 더하기 || 9095

2021. 2. 10. 23:30·🎯PS

www.acmicpc.net/problem/9095

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

이 문제 또한, 다이나믹 프로그래밍 문제이다.
1 : (1)
2 : (1, 1) (2)
3 : (1, 1, 1) (1, 2) (2, 1) (3)
4 : (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (2, 1, 1) (1, 3) (3, 1) (2, 2) → 7개
5 : (1, 1, 1, 1, 1) (1, 1, 1, 2) x 4 (1, 1, 3) x 3 (2, 3) x 2 (1, 2, 2) x 3  → 13개 = 7 + 4 + 2
6 : (1, 1, 1, 1, 1, 1) (1, 1, 1, 1, 2) x 5 (1, 1, 1, 3) x 4 (1, 1, 2, 2) x 6 (2, 2, 2) (1, 2, 3) x 6 (3, 3) → 24개 : 13 + 7 + 4
따라서, 점화식은 dp[n] = dp[n-1] + dp[n-2] + dp[n-3] 이다.

# 1, 2, 3 더하기

def dp(n):
    if n == 1:
        return 1
    elif n == 2:
        return 2
    elif n == 3:
        return 4
    else:
        return dp(n-1) + dp(n-2) + dp(n-3)


T = int(input())
for _ in range(T):
    n = int(input())
    print(dp(n))
반응형
'🎯PS' 카테고리의 다른 글
  • [백준_python] 파도반 수열 || 9461
  • [백준_python] 소수 구하기 || 1929
  • [백준_python] 1로 만들기 || 1463
  • [백준_python] 회전하는 큐 || 1021(global, deque.rotate())
dmaolon
dmaolon
프로그래밍을 공부한 내용을 기록하는 공간입니다.
  • dmaolon
    기록 남기기
    dmaolon
  • 전체
    오늘
    어제
    • ALL (260)
      • ➰ Series (5)
      • 🎯PS (168)
        • Algorithm (15)
      • ☕ Java (11)
      • 🍀 Spring Boot (29)
      • 💬 Database (9)
      • 🐣 Computer Science (14)
      • 👍 Daily (4)
      • 🎁ReactJS (4)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    Spring
    자바
    dfs
    백준
    알고리즘
    프로그래머스
    파이썬
    프로그래밍
    코딩
    BFS
  • hELLO· Designed By정상우.v4.10.1
dmaolon
[백준_python] 1, 2, 3 더하기 || 9095
상단으로

티스토리툴바