BaekJoon

16953번:A → B[Java]

충 민 2022. 9. 1. 20:26

 

그리디  식으로 접근해야한다.

 

[소스코드]

package algorithm16953;

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int count = 1;
        while (a != b){
            if (b < a) {
                System.out.println(-1);
                System.exit(0);
            }
            //B의 일의 자리가 1이면 일의 자리를 없앤다. 
            if (b % 10 == 1) b /= 10;
            //B가 2로 나뉜다면 2로 나누어준다. 
            else if (b % 2 == 0) b /= 2;
            else {
                System.out.println(-1);
                System.exit(0);
            }
            count++;
        }
        System.out.println(count);
    }
}

실행결과