--- id: wiki-2026-0508-dynamic-programming title: Dynamic Programming category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-AUTO-DYPR-001] duplicate_of: none source_trust_level: A confidence_score: 0.97 tags: [auto-reinforced, dynamic-programming, algorithms, Optimization, memoization, subproblems] raw_sources: [] last_reinforced: 2026-04-20 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Dynamic-Programming|Dynamic-Programming]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "λ˜‘λ˜‘ν•œ 반볡의 기술: λ³΅μž‘ν•œ 문제λ₯Ό μž‘μ€ λΆ€λΆ„ 문제둜 μͺΌκ°œκ³ , ν•œ 번 κ΅¬ν•œ 정닡은 λ©”λͺ¨λ¦¬μ— κΈ°μ–΅(Memoization)ν•΄λ‘μ—ˆλ‹€κ°€ λ‹€μ‹œ μ‚¬μš©ν•˜λŠ” λ°©μ‹μœΌλ‘œ 쀑볡 연산을 획기적으둜 μ€„μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜ μ΅œμ ν™”μ˜ μ •μˆ˜." ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) 동적 κ³„νšλ²•(Dynamic-Programming)은 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ 섀계 νŒ¨λŸ¬λ‹€μž„μž…λ‹ˆλ‹€. 1. **두 κ°€μ§€ ν•„μˆ˜ 쑰건**: * **Overlapping Subproblems**: λ˜‘κ°™μ€ μž‘μ€ λ¬Έμ œλ“€μ΄ λ°˜λ³΅ν•΄μ„œ λ‚˜νƒ€λ‚¨. * **Optimal Substructure**: λΆ€λΆ„ 문제의 μ΅œμ ν•΄λ₯Ό λͺ¨μœΌλ©΄ 전체 문제의 μ΅œμ ν•΄κ°€ 됨. 2. **κ΅¬ν˜„ 방식**: * **Top-Down (Memoization)**: μž¬κ·€λ₯Ό μ‚¬μš©ν•˜λ˜ 계산 κ²°κ³Όλ₯Ό μ €μž₯. * **Bottom-Up (Tabulation)**: μž‘μ€ λ¬Έμ œλΆ€ν„° μˆœμ„œλŒ€λ‘œ ν‘œλ₯Ό μ±„μ›Œλ‚˜κ°. 3. **μ™œ μ€‘μš”ν•œκ°€?**: * μ§€μˆ˜ ν•¨μˆ˜μ μœΌλ‘œ λŠ˜μ–΄λ‚˜λŠ” μ‹œκ°„ λ³΅μž‘λ„([[Brute-force|Brute-force]])λ₯Ό λ‹€ν•­ μ‹œκ°„ μ΄λ‚΄λ‘œ 쀄여주어, ν˜„μ‹€μ μœΌλ‘œ ν’€ 수 μ—†λŠ” 문제λ₯Ό ν•΄κ²° κ°€λŠ₯ν•˜κ²Œ λ§Œλ“¦. (Optimizationκ³Ό μ—°κ²°) ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌**: κ³Όκ±°μ—λŠ” μ•Œκ³ λ¦¬μ¦˜ ν…ŒμŠ€νŠΈμš© 'μˆ˜ν•™μ  기법 μ •μ±…'으둜만 μ—¬κ²¨μ‘ŒμœΌλ‚˜, ν˜„λŒ€ 정책은 κ°•ν™”ν•™μŠ΅μ˜ 핡심인 'κ°€μΉ˜ ν•¨μˆ˜ μ—…λ°μ΄νŠΈ μ •μ±…(벨만 μ—…λ°μ΄νŠΈ)'의 κ·Όκ°„ μ •μ±…μœΌλ‘œ μž¬ν‰κ°€λ¨(RL Update). - **μ •μ±… λ³€ν™”(RL Update)**: κ±°λŒ€ λͺ¨λΈμ˜ μΆ”λ‘  μ΅œμ ν™” μ •μ±…μ—μ„œ, 토큰 생성 μ‹œ λ°˜λ³΅λ˜λŠ” 연산을 μΊμ‹±ν•˜λŠ” 'KV μΊμ‹œ μ •μ±…' λ˜ν•œ ν˜„λŒ€μ μΈ 동적 κ³„νšλ²•μ˜ μ—°μž₯선상에 μžˆλŠ” μ΅œμ ν™” μ •μ±…μž„. ## πŸ”— 지식 μ—°κ²° (Graph) - [[Brute-force|Brute-force]], [[Optimization|Optimization]], [[Combinatorial-Optimization|Combinatorial-Optimization]], [[Reinforcement Learning (RL)|Reinforcement Learning (RL)]], [[Search-Optimization|Search-Optimization]] - **Modern Tech/Tools**: Fibonacci, Knapsack problem solvers, Bio-informatics sequence [[Alignment|Alignment]]. --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*