- ๋ชฉํ -
1. ํผ๋ณด๋์น
์ฌ๊ท๋ก ํ์ด๋ ๋์ง๋ง dp๋ฅผ ํ์ฉํ๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์ ๋ต์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
2. ๊ฐ๋ฐฉ
์ ํ์์ ์ ๋ํด์ผํ๋ค.
ํ์ ๊ฐ๋ฐฉ์ ์ต๋ ๋ฌด๊ฒ์ด๊ณ , ์ด์ ์ฃผ์ด์ง ๋ฌผ๊ฑด์ ๋ฌด๊ฒ์ด๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ์ต๋ํ์ ๊ฐ์ด์น๋ฅผ ๊ตฌํ๊ณ ํ๋ฅผ ์ฑ์ฐ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฑ์ธ ์ ์๋ค.
0 | 1 | 2 | 3 | 4 | 5 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 3 | 3 | 3 | 3 |
3 | 0 | 0 | 3 | 4 | 4 | 7 |
4 | 0 | 0 | 3 | 4 | 4 | 7 |
5 | 0 | 0 | 3 | 4 | 5 | 7 |
์ด๋ฅผ ํ์ฉํ์ฌ ์ ํ์์ ์ ๋ํ๋ฉด ์๋์ ๊ฐ์ ์ ํ์์ ์ ๋ํ ์ ์๋ค.
dp[i][j] = dp[i-1][j] (weight > j)
dp[i][j] = max(dp[i-1][j], value + dp[i-1][j-weight])
3. ์ ์ฌ์
์ด ๋ฌธ์ ์ญ์ ์ ํ์์ ์ ๋ํด์ผํ๋ค.
ํ์ ์ฌ๋ฃ์ ํฌ๊ธฐ, ์ด์ ์๋ฅผ ์ ์๋ ํฌ๊ธฐ์ด๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ์ต์ํ์ ๋๋ฌดํ ๋ง์ ๊ฐ์๋ฅผ ํ๋ก ๋ํ๋ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฑ์ธ ์ ์๋ค.
์ด๋ฅผ ํ์ฉํ์ฌ ์ ํ์์ ๋์คํ๋ฉด ์๋์ ๊ฐ์ ์ ํ์์ ์ ๋ํ ์ ์๋ค.
dp[j] = min(dp[j], dp[j-cut[i]] + 1)
4. ๊ฐ๊ตฌ๋ฆฌ ๊ฒ์
๊ฐ์ฅ ์ข์ธก ์ด์ ๊ฒฝ์ฐ(1์ด) ๊ฐ ์ ์๋ ๋ฐฉํฅ์ด ๋ฐ๋ก ์์ ์ค๋ฅธ์ชฝ ์ = 1์ด๊ณผ 2์ด
๊ฐ์ฅ ์ฐ์ธก ์ด์ ๊ฒฝ์ฐ(4์ด) ๊ฐ ์ ์๋ ๋ฐฉํฅ์ด ๋ฐ๋ก ์์ ์ผ์ชฝ ์ = 3์ด๊ณผ 4์ด
๋๋จธ์ง ์ด์ ๊ฒฝ์ฐ ๊ฐ ์ ์๋ ๋ฐฉํฅ์ด ๋ฐ๋ก ์์ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์ = i-1์ด, i์ด, i+1์ด
์ด๋ฅผ ๋์ฐฉํ๋ ์ง์ ์ ์์ ์์ ๋ํ๋ด๋ฉด
๊ฐ์ฅ ์ข์ธก ์ด์ ๊ฒฝ์ฐ(1์ด) ์ฌ ์ ์๋ ๋ฐฉํฅ์ด ๋ฐ๋ก ์๋์ ์ค๋ฅธ์ชฝ ์๋ = 1์ด๊ณผ 2์ด
๊ฐ์ฅ ์ฐ์ธก ์ด์ ๊ฒฝ์ฐ(4์ด) ๊ฐ ์ ์๋ ๋ฐฉํฅ์ด ๋ฐ๋ก ์๋์ ์ผ์ชฝ ์๋ = 3์ด๊ณผ 4์ด
๋๋จธ์ง ์ด์ ๊ฒฝ์ฐ ๊ฐ ์ ์๋ ๋ฐฉํฅ์ด ๋ฐ๋ก ์๋์ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์๋ = i-1์ด, i์ด, i+1์ด
์์ ์์ผ๋ก dp๋ฅผ ์ฑ์ฐ๊ณ ์ฒซ๋ฒ์งธ ํ์ ์ ์ฅ๋ ๊ฐ๋ค ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ค.
5. ๋ฐฑ์ค
์ด์ ์ ํ์ด๋ดค๋ ๋ฌธ์ ์ฌ์ ์ฝ๊ฒ ํ ์ ์์๋ค.
๋ฌธ์ ํด์ค์ ์ฒจ๋ถํ์๋ค. (codekodo.tistory.com/31)
- ๊นํ๋ธ -
github.com/k906506/2020_Winter_Assemble-And-selfcode
'โน๏ธ ๋ผ์ดํ > 2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ ํ๊ตฌ๋ง ํ] 2021.01.27(์) - 6์ฃผ์ฐจ ๊ฐ์ธ ๋ชฉํ (0) | 2021.01.27 |
---|---|
[์ฝ๋ ํ๊ตฌ๋ง ํ] 2021.01.20(์) - 5์ฃผ์ฐจ ๊ฐ์ธ ๊ฒฐ๊ณผ (0) | 2021.01.22 |
[์ฝ๋ ํ๊ตฌ๋ง ํ] 2021.01.20(์) - 5์ฃผ์ฐจ ๊ฐ์ธ ๋ชฉํ (0) | 2021.01.20 |
[์ฝ๋ ํ๊ตฌ๋ง ํ] 2021.01.13(์) - 4์ฃผ์ฐจ ๊ฐ์ธ ๊ฒฐ๊ณผ (0) | 2021.01.13 |
[์ฝ๋ ํ๊ตฌ๋ง ํ] 2021.01.13(์) - 4์ฃผ์ฐจ ๊ฐ์ธ ๋ชฉํ (0) | 2021.01.13 |