์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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
- ๋ถํ ์ ๋ณต
- ios
- ์ด์งํ์
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- WebApp
- Queue
- WebView
- dp
- ๋ฐฑ์ค
- ์ฝ๋ฉํ ์คํธ
- ๋ธ๋ฃจํธํฌ์ค
- ๋ฐฑํธ๋ํน
- Swift
- ๋์ ํฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- SwiftUI
- ๋ถํ ํ์
- BFS
- ๋นํธ์ฐ์ฐ์
- ์๊ณ ๋ฆฌ์ฆ
- ์ฝํ
- ๋ฌธ์์ด
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- dfs
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ์์
- ๋ถํ ์ ๋ณต
- ์คํ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๋ณํํ๊ธฐ ๋ณธ๋ฌธ
๐ค ์๊ณ ๋ฆฌ์ฆ/programmers
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๋ณํํ๊ธฐ
MUKER 2023. 4. 25. 22:52ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ฑ๊ณต ํ์ด
func solution(_ x: Int, _ y: Int, _ n: Int) -> Int {
var dp = Array(repeating: Int.max, count: y+1)
dp[x] = 0
for i in x..<y where dp[i] != Int.max {
let num1 = i + n
let num2 = i * 2
let num3 = i * 3
if num1 <= y {
dp[num1] = min(dp[i]+1,dp[num1])
}
if num2 <= y {
dp[num2] = min(dp[i]+1,dp[num2])
}
if num3 <= y {
dp[num3] = min(dp[i]+1,dp[num3])
}
}
return dp[y] == Int.max ? -1 : dp[y]
}
ํ์ด ํค์๋
DP
์ต์ ์ฐ์ฐ ํ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด DP๋ฅผ ํ์ฉํ๋ค.
์ ๋งคํ๊ฒ BFS๋ฅผ ์ฌ์ฉํ์ ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์๊ธฐ ๋๋ฌธ์
๋ณดํธ์ ์ธ ์ํฉ์์ ์๊ฐ๋ณต์ก๋์ ์ ๋ฆฌํ DP๋ก ํ์๋ค.
dp๋ฐฐ์ด์ Int.max๋ก ์ด๊ธฐํ ์ํจ ๋ค
dp[x]์๋ count์ ์์์ ์ํด 0์ ๋ฃ๋๋ค.
dp๋ ํด๋น ์ซ์์ ์ต์ ์ฐ์ฐ ํ์๋ฅผ ์ ์ฅํ๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์
dp[y]๋ฐฐ์ด์ ํธ์ถํ๋ฉด y์ ์ต์ ์ฐ์ฟ ํ์๊ฐ ๋์จ๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋์ถฉ ๋ง๋ ์ํ (0) | 2023.04.27 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ง์น ํ๊ธฐ (0) | 2023.04.26 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ์ฐพ๊ธฐ (0) | 2023.04.24 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํ๊ฒ ๋๋ฒ (0) | 2023.04.22 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ถ์ต ์ ์ (0) | 2023.04.21 |