서의 공간

[백준] 1697_숨바꼭질 본문

Algorithm/백준

[백준] 1697_숨바꼭질

홍서의 2020. 12. 3. 19:05

[문제]: 1697번: 숨바꼭질 (acmicpc.net)

#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;

int dist[100001];
int N, K;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	cin >> N >> K;
	fill(dist, dist + 100001, -1);
	// 시작지점
	dist[N] = 0;
	queue<int> q;
	q.push(N);
	// 동생의 위치를 찾으면 while문 종료
	while (dist[K] == -1) {
		int cur = q.front(); q.pop();
		for (int nxt : { cur - 1, cur + 1, 2 * cur}) {
			if (nxt < 0 || nxt >> 100000) continue;
			// 이미 방문했던 곳이라면
			if (dist[nxt] != -1) continue;
			dist[nxt] = dist[cur] + 1;
			q.push(nxt);
		}
	}
	cout << dist[K];
	return 0;
}

'Algorithm > 백준' 카테고리의 다른 글

[백준] 2941_크로아티아 알파벳  (0) 2020.12.30
[백준] 1629_곱셈  (0) 2020.12.11
[백준] 4179_불!  (0) 2020.12.03
[백준] 7576_토마토  (0) 2020.12.03
[백준] 1926_그림  (0) 2020.12.03
Comments