[Python] 9095번 1, 2, 3 더하기

2025. 5. 18. 01:16·coding test/Baekjoon

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

 

T=int(input())
for _ in range(T):
    n=int(input())
    dp=[0 for _ in range(n+1)]
    for i in range(1,n+1):
        if i<3:
            dp[i]=i
        elif i==3:
            dp[i]=4
        else:
            dp[i]=dp[i-1]+dp[i-2]+dp[i-3]
    print(dp[n])

 

dp[i]=dp[i-1]+dp[i-2]+dp[i-3]인 이유

→ 마지막에 더한 수가 1,2,3 중 어떤 것인지로 나눔

 

마지막에 +1를 붙였다면

→ 그 앞부분은 i-1을 만드는 방법이어야 함

→ dp[i-1]가지

 

마지막에 +2를 붙였다면

→ 그 앞부분은 i-2을 만드는 방법이어야 함

→ dp[i-2]가지

 

마지막에 +3를 붙였다면

→ 그 앞부분은 i-3을 만드는 방법이어야 함

→ dp[i-3]가지

 

따라서 dp[i]를 만들기 위해서는 dp[i-1]+dp[i-2]+dp[i-3]

 

 

 

.

.

.

어느새 백준 티어가 골드5가 되었다! 더 열심히 해야지!!

 

'coding test > Baekjoon' 카테고리의 다른 글

[Python] 2294번 동전 2  (0) 2025.05.19
[Python] 1149번 RGB거리  (0) 2025.05.18
[Python] 2579번 계단 오르기  (0) 2025.05.18
[Python] 13913번 숨바꼭질 4  (0) 2025.05.08
[Python] 1991번 트리 순회  (0) 2025.05.08
'coding test/Baekjoon' 카테고리의 다른 글
  • [Python] 2294번 동전 2
  • [Python] 1149번 RGB거리
  • [Python] 2579번 계단 오르기
  • [Python] 13913번 숨바꼭질 4
wish404
wish404
자동 로그
  • wish404
    wish-log
    wish404
    • 홈
    • 태그
    • 방명록
    • github
    • 분류 전체보기 (75) N
      • log (8)
        • 블로그 관리 (5)
        • 에러 모음 (2)
      • coding test (47)
        • Algorithm (4)
        • Baekjoon (34)
        • SW Expert Academy (6)
        • etc (3)
      • 프로그래밍 언어 (7)
        • JAVA (7)
      • 데이터 엔지니어링 (5)
        • Kafka (0)
        • Spark (4)
        • Airflow (1)
        • Elasticsearch (0)
      • 머신러닝&딥러닝 (3)
        • Kaggle 스터디 (3)
        • 논문 리뷰 (0)
        • MLOps (0)
      • 신입 개발자가 되기까지 (5) N
        • 취준일기 (1)
        • SSAFY (2)
        • 프로젝트 (1) N
        • CS 공부 (1)
  • 인기 글

  • 태그

    싸피
    전위순회
    후위순회
    dijk
    SSAFY
    복습해야지
    복습
    Dijkstra
    플로이드워샬
    BFS
    heapq
    dp
    그리디
    틀린문제
    다익스트라
    벨만포드
    최단 경로
    중위순회
    그리디 알고리즘
    dfs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wish404
[Python] 9095번 1, 2, 3 더하기
상단으로

티스토리툴바