[백준] A → B (16953)

문제 설명

백준 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)

태그:

카테고리:

업데이트: