[백준] A → B (16953)
문제 설명
입력 및 출력
» 입력
첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.
» 출력
A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
2 162 | 5 |
4 42 | -1 |
100 40021 | 5 |
문제 풀이(SWIFT) 1
//
// main.swift
// BOJ16953_SWIFT
//
// Created by choiyoujun on 2022/03/10.
//
import Foundation
let AB = readLine()!.split(separator: " ").map { Int($0)! }
var A = AB[0]
var B = AB[1]
var count = 1
while A != B {
if B < A {
print(-1)
exit(0)
}
if B % 10 == 1 { B /= 10 }
else if B % 2 == 0 { B /= 2 }
else {
print(-1)
exit(0)
}
count += 1
}
print(count)