์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฝํ
- ๋ถํ ํ์
- dp
- Swift
- ๋ฐฑ์ค
- ๋ถํ ์ ๋ณต
- WebApp
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- Queue
- BFS
- ์ฝ๋ฉํ ์คํธ
- SwiftUI
- ๋ฌธ์์ด
- WebView
- ios
- ์์
- ์ด์งํ์
- ์คํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋นํธ์ฐ์ฐ์
- ๋์ ํฉ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ธ๋ฃจํธํฌ์ค
- dfs
- ๋ฐฑํธ๋ํน
- ๋ถํ ์ ๋ณต
- ์๊ณ ๋ฆฌ์ฆ
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 1697๋ฒ: ์จ๋ฐ๊ผญ์ง ๋ณธ๋ฌธ
๋ฌธ์ ๋งํฌ
1697๋ฒ: ์จ๋ฐ๊ผญ์ง
์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ
www.acmicpc.net
๋ฌธ์
์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ ๋ ๊ฑท๋๋ค๋ฉด 1์ด ํ์ X-1 ๋๋ X+1๋ก ์ด๋ํ๊ฒ ๋๋ค. ์๊ฐ์ด๋์ ํ๋ ๊ฒฝ์ฐ์๋ 1์ด ํ์ 2*X์ ์์น๋ก ์ด๋ํ๊ฒ ๋๋ค.
์๋น์ด์ ๋์์ ์์น๊ฐ ์ฃผ์ด์ก์ ๋, ์๋น์ด๊ฐ ๋์์ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ด ๋ช ์ด ํ์ธ์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์๋น์ด๊ฐ ์๋ ์์น N๊ณผ ๋์์ด ์๋ ์์น K๊ฐ ์ฃผ์ด์ง๋ค. N๊ณผ K๋ ์ ์์ด๋ค.
์ถ๋ ฅ
์๋น์ด๊ฐ ๋์์ ์ฐพ๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
์์
์ฑ๊ณต ํ์ด
import Foundation
let NK = readLine()!.split { $0 == " " }.map { Int($0)! }, N = NK[0], K = NK[1]
var queue = [(N,0)]
var visited = Array(repeating: false, count: 100001)
while true {
let now = queue.removeFirst()
if now.0 == K {
print(now.1)
break
}
[now.0+1, now.0-1, now.0*2].forEach {
if $0>=0 && $0<=100000 && !visited[$0] {
queue.append(($0,now.1+1))
visited[$0] = true
}
}
}
ํ์ด ํค์๋
- ๋ฌธ์ ๋ฅผ ์ฝ์ด๋ณด๋ DP๋ก ํธ๋ ๋ฌธ์ ์ธ๊ฐ ์ถ์๋๋ฐ.. ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ๋ฅผ ๋ณด๋ ๊ทธ๋ํํ์์ผ๋ก ๋ถ๋ฅ๋์ด ์์ด, ๋ฐ๋ก ๋๋น์ฐ์ ํ์(BFS)์ผ๋ก ํ์์ต๋๋ค.
- ์ฒซ ํ์ด ์ฝ๋์์ ๋ฐฉ๋ฌธ์ฒดํฌํ๋ ๋ฐฐ์ด visited๋ฅผ Set์ผ๋ก ๋ง๋ค์ด ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ํ์์ต๋๋ค. Set์ contains() ํจ์๋ ์๊ฐ๋ณต์ก๋๊ฐ O(1)์ธ ๊ฑธ๋ก ์๊ณ ์์ด์ ์๊ฐ์ด๊ณผ๊ฐ ์ ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋๋ฐ์.. ๋ค ๋ง์ต๋๋ค ์ฌ์ค contains์ ์๋ชป์ด ์๋๊ณ .. ์ ์ ์ต๋๊ฐ์ ๋ฐ๋ผ 10๋ง ์๋ ์ ์ธํ์ด์ผ ํ๋๋ฐ ์ธ์งํ์ง ๋ชปํ์ต๋๋ค.
- Set์ ์๋ชป์ด๋ผ ์๊ฐํ๊ณ false๊ฐ์ ๊ฐ์ง ๋ฐฐ์ด 10๋ง1๊ฐ๋ฅผ ๋ง๋ค์ด ๋ฐฉ๋ฌธ์ฒ๋ฆฌ๋ฅผ ํ์ต๋๋ค. ๋ ๋ฒ์งธ ํ์ด์์๋ ์ ์ ์์น๊ฐ 0๋ณด๋ค ์ด์์ด๊ณ 10๋ง๋ณด๋ค ์ดํ๋ผ๋ ์กฐ๊ฑด์ ์ถ๊ฐํด์ ์๊ฐ์ด๊ณผ๋ฅผ ๋ฉดํ ์ ์์์ต๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 2740๋ฒ: ํ๋ ฌ ๊ณฑ์ (0) | 2023.07.17 |
---|---|
[swift] ๋ฐฑ์ค - 8979๋ฒ: ์ฌ๋ฆผํฝ (0) | 2023.07.14 |
[swift] ๋ฐฑ์ค - 1748๋ฒ: ์ ์ด์ด ์ฐ๊ธฐ 1 (0) | 2023.07.12 |
[swift] ๋ฐฑ์ค : 16974๋ฒ: ๋ ๋ฒจ ํ๋ฒ๊ฑฐ (0) | 2023.07.11 |
[swift] ๋ฐฑ์ค - 14235๋ฒ: ํฌ๋ฆฌ์ค๋ง์ค ์ ๋ฌผ (0) | 2023.07.10 |