BOJ 16928 뱀과 사다리 게임

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

1 개요[ | ]

BOJ 16928 뱀과 사다리 게임

2 C++[ | ]

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

int N, M;
int A[101] = {};
int visited[101] = {};

void bfs() {
    queue<int> q;
    q.push(1);
    visited[1] = 1;
    int x, nx;
    while(!q.empty()) {
        x = q.front();
        q.pop();
        for(int i=1; i<=6; i++) {
            nx = x + i;
            if(nx>100 || visited[nx]!=0) continue;
            visited[nx] = visited[x]+1;
            if(A[nx] != 0) {
                nx = A[nx];
                if(visited[nx]!=0) continue;
                visited[nx] = visited[x]+1;
            }
            if(nx == 100) return;
            q.push(nx);
        }
    }
}

int main() {
    cin >> N >> M;
    int from, to;
    for(int i=0; i<N+M; i++) {
        cin >> from >> to;
        A[from] = to;
    }
    bfs();
    cout << visited[100] - 1;
}