λμ νλ‘κ·Έλλ°Intermediate
0/1 λ°°λ λ¬Έμ
μ£Όμ΄μ§ 무κ²μ κ°μΉλ₯Ό κ°μ§ μμ΄ν μ μ ννμ¬ λ¬΄κ² μ ν λ΄μμ μ΄ κ°μΉλ₯Ό μ΅λννλ κ³ μ μ μΈ λμ νλ‘κ·Έλλ° λ¬Έμ μ λλ€. κ° μμ΄ν μ ν λ²λ§ μ νν μ μμ΅λλ€(0/1). μμ ν λΉ, ν¬νΈν΄λ¦¬μ€ μ΅μ ν, νλ¬Ό μ μ¬ λ±μ μμ©μ΄ μμ΅λλ€.
#dynamic-programming#optimization#combinatorial#np-complete
Complexity Analysis
Time (Average)
O(n Γ W)Expected case performance
Space
O(n Γ W)Memory requirements
Time (Best)
O(n Γ W)Best case performance
Time (Worst)
O(n Γ W)Worst case performance
π CLRS Reference
Introduction to Algorithmsβ’Chapter 16β’Section 16.2
How it works
- β’ 0/1 Knapsack: maximize value within capacity limit
- β’ Dynamic programming approach
- β’ O(n Γ W) time, O(n Γ W) space complexity
- β’ Each item can be taken once or not at all
- β’ Formula: dp[i][w] = max(dp[i-1][w], dp[i-1][w-wt[i]] + val[i])
Step: 1 / 0
500ms
SlowFast
Keyboard Shortcuts
Space Play/Pauseβ β StepR Reset1-4 Speed
Real-time Statistics
Algorithm Performance Metrics
Progress0%
Comparisons
0
Swaps
0
Array Accesses
0
Steps
1/ 0
Algorithm Visualization
Step 1 of 0
Initialize array to begin
Default
Comparing
Swapped
Sorted
Code Execution
Currently executing
Previously executed
Implementation