๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 16953_A → B

๋ฟŒ์•ผ._. 2022. 12. 14. 21:07

Silver II

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/16953)

<A -> B>

 

๋ฌธ์ œ ํ’€์ด

 

bfs๋ฅผ ํ™œ์šฉํ•˜์—ฌ A๋ฅผ B๋กœ ๋ฐ”๊พธ๋Š”๋ฐ ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•œ๋‹ค.

 

 - my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class _16953_ { // A -> B

	public static void main(String[] args) throws IOException {
		BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer(bf.readLine());
		
		long A=Integer.parseInt(st.nextToken());
		long B=Integer.parseInt(st.nextToken());
		
		Queue<long[]>queue=new LinkedList<>();
		queue.add(new long[] {A,(long) 0});

		long result=0;
		
		while(!queue.isEmpty()) {
			long temp[]=queue.poll();
			long num=temp[0]*2; // 2๋ฅผ ๊ณฑํ•œ๋‹ค
			if(num==B) {
				result=temp[1]+1;
				break;
			}
			if(num<B) queue.add(new long[] {num, temp[1]+1});
			num=temp[0]*10+1; // 1์„ ์ˆ˜์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์ถ”๊ฐ€ํ•œ๋‹ค
			if(num==B) {
				result=temp[1]+1;
				break;
			}
			if(num<B) queue.add(new long[] {num, temp[1]+1});
		}
		if(result==0) System.out.println(-1);
		else System.out.println(result+1);
	}
}

 

  •  Main
    • A์™€ B ์ž…๋ ฅ
    • Queue์— [์ •์ˆ˜, ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ์ˆ˜] ๋ฐฐ์—ด์„ ๋„ฃ์–ด์ค€๋‹ค.
    • queue๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค -> queue์—์„œ ๋ฝ‘์€ ๊ฐ’์„ 2๋ฐฐ ํ•œ ํ›„ B๊ฐ’๊ณผ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด queue์— ๋„ฃ์–ด์ค€๋‹ค. 1์„ ์ˆ˜์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ queue์—์„œ ๋ฝ‘์€ ๊ฐ’์— 10์„ ๊ณฑํ•œ ํ›„ 1์„ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ทธ ๊ฐ’์ด ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ B์™€ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด queue์— ๋„ฃ์–ด์คŒ์œผ๋กœ์จ ๋ฐ˜๋ณตํ•œ๋‹ค. ๋งŒ์•ฝ B์™€ ๊ฐ™๋‹ค๋ฉด ๋ฐ”๋กœ ์ข…๋ฃŒํ•ด์ค€๋‹ค. (๋ฐ”๋€ ๊ฐ’์ด B์™€ ๊ฐ™์ง€ ์•Š์„ ๋•Œ๋Š” B๋ณด๋‹ค ๊ฐ’์ด ์ž‘์„ ๋•Œ queue์— ๋„ฃ์–ด์ฃผ๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค -> B๋ณด๋‹ค ํฌ๋ฉด ์–ด๋–ค ์—ฐ์‚ฐ์„ ํ•ด๋„ B๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. )
    • result ๊ฐ’์ด ์ดˆ๊ธฐ๊ฐ’์ธ 0๊ณผ ๊ฐ™๋‹ค๋ฉด B๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ -1์„ ์ถœ๋ ฅํ•˜๊ณ  0์ด ์•„๋‹ˆ๋ผ๋ฉด result ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

์ƒ๊ฐ๐Ÿค”

 

์ฒ˜์Œ์— ํ‹€๋ฆฐ ์ด์œ ๋Š” ๊ฐ„๋‹จํ–ˆ๋‹ค. ๋ฒ”์œ„ ์กฐ๊ฑด์„ ๋ณด์ง€ ์•Š์•„ int๋ฅผ ์ผ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ์ด๊ฑธ ๋˜ ๋ชป ์ฐพ๊ณ ...

๋‘ ๋ฒˆ์งธ๋Š” ๋ธ”๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ํ•„์š” ์—†๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ˆ˜์ •ํ•˜์˜€๋”๋‹ˆ ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์—ˆ๋‹ค. ใ…‡_<