서의 공간
[백준] 1697_숨바꼭질 본문
[문제]: 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