flowchart TD
A[Define dp array] --> B[Set base cases]
B --> C[Iterate i from 2 n]
C --> D[Apply recurrence]
D --> E[Store dp i]
E --> F{more states}
F -- Yes --> C
F -- No --> G[Return dp n]
sequenceDiagram
participant I as index i
participant D as dp table
I->>D: read previous states
D-->>I: dp i 1 dp i 2
I->>D: write dp i
loop until n
I->>D: advance i
end
# [1D DP 템플릿: 아키텍트 버전]# Use Case: 피보나치, 계단 오르기, 최대 부분 합# Components: DP Table (1차원 배열)# Constraint: 이전 상태로부터 현재 상태 도출defdp_1d_template(n):# 1. 초기화 (Initialization Layer)# - DP 테이블 생성 및 베이스 케이스 설정dp=[0]*(n+1)dp[0]=1# 베이스 케이스dp[1]=1# 베이스 케이스# 2. 상향식 계산 (Bottom-Up Calculation)foriinrange(2,n+1):# 3. 점화식 (Recurrence Relation)# - 이전 상태들로부터 현재 상태 계산dp[i]=dp[i-1]+dp[i-2]# 예: 피보나치returndp[n]