Skip to content

Commit 084bef7

Browse files
committed
[Silver II] Title: A → B, Time: 108 ms, Memory: 14136 KB -BaekjoonHub
1 parent 5bd3914 commit 084bef7

2 files changed

Lines changed: 74 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.io.BufferedReader;
2+
import java.io.IOException;
3+
import java.io.InputStreamReader;
4+
import java.util.StringTokenizer;
5+
6+
public class Main {
7+
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
11+
int A = Integer.parseInt(stringTokenizer.nextToken());
12+
int B = Integer.parseInt(stringTokenizer.nextToken());
13+
int answer = 1;
14+
15+
while (B != A){
16+
if(B < A){
17+
answer = -1;
18+
break;
19+
}
20+
21+
if(B % 2 == 0){
22+
B /= 2;
23+
answer++;
24+
25+
}else if(B % 10 == 1){
26+
B /= 10;
27+
answer++;
28+
29+
}else {
30+
answer = -1;
31+
break;
32+
}
33+
34+
}
35+
36+
System.out.println(answer);
37+
}
38+
39+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# [Silver II] A → B - 16953
2+
3+
[문제 링크](https://www.acmicpc.net/problem/16953)
4+
5+
### 성능 요약
6+
7+
메모리: 14136 KB, 시간: 108 ms
8+
9+
### 분류
10+
11+
그래프 이론, 그리디 알고리즘, 그래프 탐색, 집합과 맵, 너비 우선 탐색
12+
13+
### 제출 일자
14+
15+
2025년 6월 2일 23:13:23
16+
17+
### 문제 설명
18+
19+
<p>정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다.</p>
20+
21+
<ul>
22+
<li>2를 곱한다.</li>
23+
<li>1을 수의 가장 오른쪽에 추가한다. </li>
24+
</ul>
25+
26+
<p>A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자.</p>
27+
28+
### 입력
29+
30+
<p>첫째 줄에 A, B (1 ≤ A < B ≤ 10<sup>9</sup>)가 주어진다.</p>
31+
32+
### 출력
33+
34+
<p>A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다.</p>
35+

0 commit comments

Comments
 (0)