시간&메모리 제한
문제
입력&출력
문제풀이
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문을 나가게 만들어줍니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_1927 최소힙(자바) / 우선순위 큐 (0) | 2021.11.26 |
---|---|
백준_1246 온라인 판매(자바) / 그리디 (0) | 2021.11.25 |
백준_1913 달팽이(자바) / 구현 (0) | 2021.11.19 |
백준_3273 두 수의 합(자바) / 투 포인트 (0) | 2021.11.18 |
백준_14235 크리스마스 선물 (0) | 2021.11.17 |