1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S2_16953] A -> B

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static int A,B;
    static int min = Integer.MAX_VALUE;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");

        // **** input start ****

        A = Integer.parseInt(st.nextToken());
        B = Integer.parseInt(st.nextToken());

        // **** input end ****

        dp(A,1);

        // ๋งŒ์•ฝ ๊ฐ’์ด ์—†์œผ๋ฉด -1 ์ถœ๋ ฅ
        if(min == Integer.MAX_VALUE) System.out.println(-1);
        else System.out.println(min);
    }

    // dp
    static void dp(long num, int cnt){
        // B๋ณด๋‹ค ํฌ๋ฉด ํ†ต๊ณผ
        if(num > B){
            return;
        }

        // B์ด๋ฉด ์ตœ์†Œ๊ฐ’ ์ž…๋ ฅ
        if(num == B){
            min = Math.min(min, cnt);
            return;
        }


        // 2 ๊ณฑํ•˜๊ธฐ
        dp(num*2,++cnt);
        // ๋ฐฑํŠธ๋ž˜ํ‚น
        cnt--;

        // 1์„ ์ˆ˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์ถ”๊ฐ€
        dp(num*10+1, ++cnt);
        // ๋ฐฑํŠธ๋ž˜ํ‚น
        cnt--;
    }
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

๋ณด์ž๋งˆ์ž A,B์˜ ๋ฒ”์œ„๊ฐ€ 10์˜ 9์Šน์ธ ๊ฒƒ์„ ๋ณด๊ณ  ์žฌ๊ท€๋กœ ํ’€์—ˆ๋‹ค.
ํ™•์‹คํžˆ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํ’€๋‹ค ๋ณด๋‹ˆ ๊ฐ์ด ์žกํžˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค ใ…Žใ…Ž
ํ’€์ด ๊ณผ์ •์ด๋‹ค.

  • A๋ถ€ํ„ฐ ์นด์šดํŒ…์„ ํ•ด์ค€๋‹ค.
  • ๊ณฑํ•˜๊ธฐ 2๋กœ ํ•˜๋‚˜ , 1์„ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฑฐ ํ•˜๋‚˜ ๋กœ ๊ณ„์†ํ•ด์„œ ํŽผ์ณ ๋‚˜๊ฐ„๋‹ค.
  • ๋งŒ์•ฝ B๋ณด๋‹ค ํฐ ๊ฐ’์ด ๋‹ค์‹œ ํ˜ธ์ถœ๋œ๋‹ค๋ฉด return ํ•ด์ค€๋‹ค.
  • ๋งŒ์•ฝ B๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ๊ธฐ์กด ๊ฐ’๊ณผ ๋น„๊ตํ•ด์„œ min ๊ฐ’์„ ๊ตฌํ•ด์ค€๋‹ค.
  • ๋งˆ์ง€๋ง‰์— min ์ถœ๋ ฅํ•˜๋ฉด ๋

์ฒ˜์Œ์— dp[] ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ํ’€์—ˆ๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค.. ๊ทธ๋ž˜์„œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ตณ์ด ๋ฐฐ์—ด์„ ๊ตฌํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ ๋ผ๋Š” ์ƒ๊ฐ๊ณผ ํ•จ๊ป˜ ๊ทธ๋ƒฅ B์— ๋„๋‹ฌํ•ด์ฃผ๋ฉด ์ตœ์†Ÿ๊ฐ’์„ ๋น„๊ตํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ํ–ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  A,B์˜ ๋ฒ”์œ„๊ฐ€ int ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„œ๊ธฐ ๋•Œ๋ฌธ์— long์„ ์‚ฌ์šฉํ•ด์„œ num์„ ๊ตฌํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: