티스토리 뷰

728x90

문제

https://www.acmicpc.net/problem/16953

 

16953번: A → B

첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.

www.acmicpc.net

 

 

풀이 및 소스코드

 

a와 b를 입력받을 때

long으로 하는 것이 중요하다..... ㅠㅠ

입력값 주의깊게 보기..!!!!

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

public class Main {
	static long a,b;
	static int minn = Integer.MAX_VALUE;
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		st = new StringTokenizer(br.readLine());
		a = Integer.parseInt(st.nextToken());
		b = Integer.parseInt(st.nextToken());
		make(0, a);
		if(minn == Integer.MAX_VALUE)
			System.out.println("-1");
		else
			System.out.println(minn);
	}
	public static void make(int cnt, long n) {
		if(n==b) {
			minn = Math.min(minn, cnt+1);
			return;
		}
		if(n>b) {
			return;
		}
		
		if(n*2<=b)
			make(cnt+1, n*2);
		if((n*10+1)<=b)
			make(cnt+1, n*10+1);
	}
}
반응형