BOJ 1697 숨바꼭질

Jmnote (토론 | 기여)님의 2024년 2월 3일 (토) 13:04 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

BOJ 1697 숨바꼭질

2 같이 보기[ | ]

3 C++[ | ]

#include <bits/stdc++.h>
using namespace std;

int N, K;
int visited[100001] = {};

void bfs() {
    queue<int> q;
    q.push(N);
    visited[N] = 1;
    int x, nx;
    while(!q.empty()) {
        x = q.front();
        q.pop();
        for(int i=0; i<3; i++) {
            if(i==0) nx = x-1;
            else if(i==1) nx = x+1;
            else nx = x*2;
            if(nx<0 || nx>100000 || visited[nx]>0) continue;
            q.push(nx);
            visited[nx] = visited[x]+1;
            if(nx == K) return;
        }
    }
}

int main() {
    cin >> N >> K;
    bfs();
    cout << visited[K]-1;
}