Hide and Seek

์ตœ๊ทผ์— ํ’€์—ˆ๋˜ ๋Œ€ํ‘œ์ ์ธ BFS ๋ฌธ์ œ์ธ ํ† ๋งˆํ†  ๋ฌธ์ œ์ฒ˜๋Ÿผ

2์ฐจ์› ๋ฐฐ์—ด๋กœ ์ฃผ์–ด์ง„ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋งŒ bfs๋ฅผ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ ์ •์ˆ˜์— ๋Œ€ํ•œ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ bfs๋กœ ๋‹ต์„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์‹ ๊ธฐํ•˜๊ณ  ๋‚ฏ์„ค์—ˆ๋‹ค. bfs์˜ ํŠน์„ฑ์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์‰ฝ๋‹ค. a์—์„œ b๋กœ ๊ฐ€๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. a์—์„œ ๋‹ค์Œ ์ •์ ์œผ๋กœ ๊ฐˆ ๋•Œ, ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์ •์ ์œผ๋กœ ๊ฐˆ ๋•Œ ํšŸ์ˆ˜(๊ฑฐ๋ฆฌ/์‹œ๊ฐ„)์„ ๊ธฐ๋กํ•œ๋‹ค! a์—์„œ b๋กœ ๊ฐ€๋Š” ์ตœ์†Œ ํšŸ์ˆ˜(์ตœ๋‹จ๊ฑฐ๋ฆฌ/์ตœ๋‹จ์‹œ๊ฐ„)์€ ๊ธฐ๋กํ•œ dist๋ฐฐ์—ด์—์„œ b์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ํšŸ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” dist[b] ๊ฐ’์ด ์ •๋‹ต์ด ๋œ๋‹ค!

=>2์ฐจ์› ๋ฐฐ์—ด ๋œ ์ž…๋ ฅ with BFS ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Two Dots(DFS), ์„œ์šธ์ง€ํ•˜์ฒ  2ํ˜ธ์„ (์ธ์ ‘๋ฆฌ์ŠคํŠธ ์ด์šฉ), BFS ์ŠคํŽ˜์…œ ์ €์ง€ ๋“ฑ ํ’€์ด ๋ฐฉ์‹์ด ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค๋„ ์ต์ˆ™ํ•ด์งˆ ํ•„์š”๊ฐ€ ์žˆ๋‹ค! ์ž…๋ ฅ์ด 2์ฐจ์› ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ๋„ BFS/DFS(์žฌ๊ท€/์Šคํƒ) ํ’€์ด ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ BFS/DFS ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํ’€์–ด๋ด„์œผ๋กœ์จ ์ต์ˆ™ํ•ด์ง€์ž!

์•„๋ž˜์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ˆ˜ํ•™์ ์œผ๋กœ ํ’€์–ด๋ณด์•˜๋Š”๋ฐ ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‹คํ–‰์ด ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์•˜๋‹ค.

n์„ ๊ฐ€๊ฐํ•˜๋ฉด์„œ while๋ฃจํ”„ ํƒˆ์ถœ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ์—ˆ๋Š”๋ฐ ์™œ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฑธ๊นŒ?(QnA ์งˆ๋ฌธ ์™„๋ฃŒ, ๋‹ต๋ณ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘ 6/1ํ™”)

import java.util.*;
public class Hide_Seek {
	public static int n;
	public static int k;
	public static int[] dir = {-1,1,2};
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		k = sc.nextInt();
		int cnt=0;
		while(n != k) {//์™œ ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๋Š”๊ฐ€!?
			for(int i=0;i<3;i++) {
				n = n+dir[i];//์ด๋™ํ•œ ์ƒˆ๋กœ์šด ์ขŒํ‘œ.
				if(i==2) {n = n*2;}
				cnt++;
			}
		}
		System.out.println(cnt);
	}
}

BFS Solution

  1. ์ •์  : ํ˜„์žฌ ์ˆ˜๋นˆ์˜ ์œ„์น˜, ๊ฐ„์„  : +1/-1/X2

  2. ์ตœ์†Œ ์‹œ๊ฐ„ ์ฐพ๋Š” BFS ํƒ์ƒ‰์— ํ•„์š”ํ•œ ๊ฒƒ 1. ์ค‘๋ณต ๋ฐฉ๋ฌธ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ check ๋ฐฐ์—ด 2. ๊ฑฐ๋ฆฌ(์‹œ๊ฐ„)๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•œ dist ๋ฐฐ์—ด

  3. ์ด๋™ ์‹œ๊ฐ„(๊ฐ€์ค‘์น˜) ๋ชจ๋‘ 1์ด์ง€๋งŒ, ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์ด๋™ํ•˜๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ +1,-1,X2๋กœ ๋‹ค ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ ์ด๋™๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋‹ค์Œ ์ด๋™ ์ •์ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ด์ค€๋‹ค!

BFS Solution์œผ๋กœ ํ’€์—ˆ์„ ๋•Œ ํ‹€๋ฆฐ ์ด์œ (์‹ค์ˆ˜)

+1,-1,*2 ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•  ์ •์  ์ขŒํ‘œ์— ๋Œ€ํ•ด ์ค‘๋ณต์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š์•„ ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋Œ๊ฒŒ ๋˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ํž™ ๊ณต๊ฐ„์ดˆ๊ณผ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.

Last updated