1. DP 기본 개념Dynamic Programming (동적 프로그래밍)큰 문제를 작은 문제로 나누고, 한 번 푼 문제의 결과를 저장해서 다시 사용하며(중복 계산 방지) 효율적으로 푸는 알고리즘 기법.조건Overlapping Subproblems — 같은 부분 문제가 반복해서 등장Optimal Substructure — 문제의 최적해가 부분 문제의 최적해로 구성됨핵심 키워드Memoization (Top-Down): 재귀 + 캐싱 방식. 필요할 때만 계산하고 저장.Tabulation (Bottom-Up): 반복문으로 DP 테이블을 순차적으로 채우는 방식.상황별 방식 추천상태·전이 정의가 명확, n이 크며 재귀 깊이 위험Bottom-Up도달하는 상태가 일부, 전이 분기 많음Top-Down + 메모이제이션경..