๋ฐฑ์ค A->B(Swift)
2022. 10. 24. 14:41ใAlgorithm
๋ฐฑ์ค A->B(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/16953
๋์ ํ์ด
์ฒ์์ n์ ๋ง์ง๋ง ์ซ์๊ฐ 1๋ก๋๋๋ ๊ฒฝ์ฐ์ 2๋ก ๋๋ ๋จ์ด์ง๋ ๊ฒฝ์ฐ ๋ ๊ฐ์ง๋ง ์ฒดํฌํด์ ์ ๋ต์ด ์ ๋์์๋๋ฐ ๋๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฒฝ์ฐ๋ฅผ else { break }๋ก ์ฒดํฌํด์คฌ๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค.
import Foundation
let input = readLine()!.components(separatedBy: " ").map{Int($0)!}
var target = input[0], n = input[1]
var cnt = 1
while n > target {
cnt += 1
if String(n).last! == "1" {
n = Int(String(n).prefix(String(n).count-1))!
} else {
if n % 2 == 0 {
n = n / 2
} else {
break
}
}
}
if n == target { print(cnt) }
else { print(-1) }
๋ค๋ฅธ ์ฌ๋์ ํ์ด
1์์๋ฆฌ๋ฅผ 10์ผ๋ก ๋๋ ์ ๊ตฌํ ํ์ด๋ค. ์ค์ํํธ์์ ์์ ๋ด ํ์ด์ฒ๋ผ ๋ฌธ์์ด๋ก ๋ค๋ฃจ๋ ค๊ณ ํ๋ฉด ๋ค์ ๋ณต์กํ ๋ถ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ ์ซ์์์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด ๋๋๋ก ์ซ์์์ ์ฒ๋ฆฌํ๋ ๊ฒ ์ข๋ค.
import Foundation
let input = readLine()!.components(separatedBy: " ").map{Int($0)!}
var target = input[0], n = input[1]
var cnt = 1
while n > target {
if n%10 == 1 {
n = n/10
} else if n%2 == 0 {
n = n/2
} else {
break
}
cnt += 1
}
if n == target { print(cnt) }
else { print(-1) }
ํผ๋๋ฐฑ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ๋ณด์๋๋(Swift) (0) | 2022.10.25 |
---|---|
๋ฐฑ์ค - ์บ ํ(Swift) (0) | 2022.10.25 |
๋ฐฑ์ค - ๋ค์ง๊ธฐ(Swift) (0) | 2022.10.24 |
๋ฐฑ์ค - ์นด๋ ์ ๋ ฌํ๊ธฐ(Swift) (0) | 2022.10.24 |
๋ฐฑ์ค - ์ ์ ์ฌ์(Swift) (0) | 2022.10.24 |