• 문제 링크
16953번: A → B
첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
long a = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
bw.write(bfs(a, b) + "\n");
bw.flush();
}
private static int bfs(long a, long b) {
Queue<Long> q = new LinkedList<>();
q.offer(a);
int cnt = 0;
while (!q.isEmpty()) {
int size = q.size();
for (int i = 0; i < size; i++) {
long tmp = q.poll();
if (tmp == b)
return cnt + 1;
if (tmp * 2 <= b)
q.offer(tmp * 2);
if (tmp * 10 + 1 <= b)
q.offer(tmp * 10 + 1);
}
cnt++;
}
return -1;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 10828 스택 - Data Structure / Java (0) | 2022.06.12 |
---|---|
[백준] 1697 숨바꼭질 - Graph Theory / Java (0) | 2022.06.11 |
[백준] 1541 잃어버린 괄호 - Greedy / Java (0) | 2022.06.09 |
[백준] 13305 주유소 - Greedy / Java (0) | 2022.06.08 |
[백준] 1063 킹 - Implementation / Java (0) | 2022.06.07 |
댓글