Algorithm/백준 알고리즘
백준_16953 A->B (자바) / 탐색
미스터로즈
2021. 11. 23. 09:36
시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Back_16953 {
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 ans =1;
while(true) {
if(A==B) {
break;
}
if(A>B) {
ans = -1;
break;
}
String tmp = String.valueOf(B);
if(B%2!=0 && tmp.charAt(tmp.length()-1)!='1') {
ans = -1;
break;
}
if(B%2==0) {
B/=2;
}else {
tmp = tmp.substring(0,tmp.length()-1);
B = Integer.parseInt(tmp);
}
ans++;
}
System.out.println(ans);
}
}
※ 내 생각
이 문제는 탐색을 활용하는 문제입니다.
각 문자에 대해서 탐색을 진행하고 문제를 해결할 수 있습니다.
A가 아닌 B를 기준으로 진행을 하고, B에 따라 조건을 보고
해당하지 않으면 예외로 처리하여 while문을 나가게 만들어줍니다.