1697번: 숨바꼭질
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
배운것
for(int nxt : {cur-1, cur+1, 2*cur}) 로 한꺼번에 처리하기
정답코드
#include <bits/stdc++.h>
using namespace std;
#define X first
#define Y second
int dist[100002];
int n,k;
int main(void){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
fill(dist, dist+100001,-1);
dist[n] = 0;
queue<int> Q;
Q.push(n);
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];
}
'Algorithm > C++' 카테고리의 다른 글
[백준 10026] 적록색약 (0) | 2022.08.30 |
---|---|
[백준 1012] 유기농 배추 (0) | 2022.08.30 |
[백준 4179] 불! (0) | 2022.08.29 |
[백준 1926] 그림 (0) | 2022.08.19 |
[백준 2504] 괄호의 값 (0) | 2022.08.17 |
댓글