์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- dfs
- WebApp
- ์ด์งํ์
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ์์
- ios
- ๋ฐฑํธ๋ํน
- Queue
- ๋์ ํฉ
- ์ฝ๋ฉํ ์คํธ
- ์ฝํ
- ๋ถํ ํ์
- SwiftUI
- WebView
- BFS
- dp
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฌธ์์ด
- ๋ธ๋ฃจํธํฌ์ค
- ๋ถํ ์ ๋ณต
- ๋ถํ ์ ๋ณต
- Swift
- ๋ฐฑ์ค
- ๋นํธ์ฐ์ฐ์
- ์๊ณ ๋ฆฌ์ฆ
- ์คํ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ ๋ณธ๋ฌธ
12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ
์ฒซ ์ค์ ๋ฌผํ์ ์ N(1 ≤ N ≤ 100)๊ณผ ์ค์๊ฐ ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ K(1 ≤ K ≤ 100,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ W(1 ≤ W ≤ 100,000)์ ํด๋น ๋ฌผ๊ฑด์ ๊ฐ์น V(0 ≤ V ≤ 1,000)
www.acmicpc.net
๋์ ํ์ด
let NK = readLine()!.split(separator: " ").map { Int($0)! }
let N = NK[0]
let K = NK[1]
var goods = Array(repeating: [Int](), count: N+1) // [weight, value]
for i in 1...N {
goods[i] += readLine()!.split(separator: " ").map { Int($0)! }
}
var dp = Array(repeating: Array(repeating: 0, count: K+1), count: N+1)
for i in 1...N {
let weight = goods[i][0]
let cost = goods[i][1]
for j in 1...K {
dp[i][j] = dp[i-1][j]
if j >= weight {
dp[i][j] = max(dp[i][j], dp[i-1][j-weight] + cost)
}
}
}
print(dp[N][K])
ํ์ด ํค์๋
DP
goods๋ผ๋ 2์ฐจ์๋ฐฐ์ด์ ๋ฌผ๊ฑด์ ๋ฃ์ด๊ฐ๋ฉฐ ์๋ฉ ๊ฐ๋ฅ ๋ฌด๊ฒ๋ง๋ค ์ต๋ ์๋ฉ value๋ฅผ ๊ธฐ์ตํ์ฌ
์ ์ผ ํฐ value๊ฐ์ ๋ฐํํ๋ค.
์ด๊ฒ ์๊ฐ๋ณด๋ค ์ดํดํ๊ธฐ ์ด๋ ค์ ์ผ๋ฉฐ, ๊ฐ์ ๊ธฐ์ตํด ๋จ๋ค๊ฐ ํ์ํ ๋ ์จ๊ฐ๋ฉฐ ๋ ์ ์ฅํ๋ค๋ ๋งค์ปค๋์ฆ์ ์์ ํ ์ดํดํ ํ์๊ฐ ์๋ค.
์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ ํ ํ์ด
let NK = readLine()!.split(separator: " ").map { Int($0)! }
let N = NK[0] // ๋ฌผํ์ ์
let K = NK[1] // ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ
var dp = Array(repeating: 0, count: K+1)
for _ in 0..<N {
let WV = readLine()!.split(separator: " ").map { Int($0)! }
let W = WV[0] // ๋ฌผํ์ ๋ฌด๊ฒ
let V = WV[1] // ๋ฌผํ์ ๊ฐ์น
for i in stride(from: K - W, through: 0, by: -1) {
if (i == 0 || dp[i] > 0) && dp[i] + V > dp[i+W] {
dp[i+W] = dp[i] + V
}
}
}
print(dp.max()!)
ํ์ด ํค์๋
DP
1์ฐจ์ ๋ฐฐ์ด๋ก DP๋ฅผ ํ์ฉํด ํผ ํ์ด๋ค.
์์ ํ์ด์ ์ ๋ฐ์ ์ธ ํ์ด ๋งค์ปค๋์ฆ์ ๊ฐ๋ค.
๋ฌผ๊ฑด์ ๋ฃ์ ๋ ๋ง๋ค ๋ฌด๊ฒ์ ๊ฐ๋ฅํ ์ต๋์น๋ฅผ ๋ฃ๊ณ
๋ค์ ๋ฌผ๊ฑด์ ๋ฃ์ ๋ ๋จ๋ ๋ฌด๊ฒ์ ํ์ฌ ๋ฌด๊ฒ์ value๊ฐ ํ์ฌ ๋ฌด๊ฒ์ value๋ณด๋ค ๋๋ค๋ฉด
๋์ value๋ฅผ ๊ธฐ์ตํ๋ฉฐ ํธ๋ ๋ฐฉ์์ด๋ค.
stride()๋ก ๋ฐ๋ณต๋ฌธ์ ์ ํํ๊ธฐ ๋๋ฌธ์ ๋ ๋ฎ์ ์๊ฐ๋ณต์ก๋๊ฐ ๋ ๊ฑฐ ๊ฐ๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ (0) | 2023.03.31 |
---|---|
[swift] ๋ฐฑ์ค - 1520๋ฒ: ๋ด๋ฆฌ๋ง ๊ธธ (0) | 2023.03.30 |
[swift] ๋ฐฑ์ค - 25314๋ฒ: ์ฝ๋ฉ์ ์ฒด์ก๊ณผ๋ชฉ ์ ๋๋ค (0) | 2023.03.26 |
[swift] ๋ฐฑ์ค - 15649๋ฒ: N๊ณผ M (1) (0) | 2023.03.25 |
[swift] ๋ฐฑ์ค - 2606๋ฒ: ๋ฐ์ด๋ฌ์ค (0) | 2023.03.23 |