본문 바로가기

백준/그래프

백준 16928 - 뱀과 사다리 게임

728x90
728x90

https://www.acmicpc.net/problem/16928

 

다른 노드로 건너뛸 수 있는 간선이 주어진다는 것과 주사위의 점만큼 움직인다는 점을 기억하며 BFS를 수행하면 된다.

 

전체 코드

더보기
#include <bits/stdc++.h>

using namespace std;
using pii = pair<int, int>;

int n, m;
unordered_map<int, int> warp;
bool visited[101];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> m;

    for (int i = 0; i < n + m; ++i)
    {
        int go, to;
        cin >> go >> to;
        warp[go] = to;
    }

    queue<pii> q;
    q.push({1, 0});
    visited[1] = true;

    while (true)
    {
        auto cur = q.front();
        q.pop();
        
        for (int i = 1; i <= 6; ++i)
        {
            int nxt = i + cur.first;

            if (warp.count(nxt))
                nxt = warp[nxt];

            if (visited[nxt])
                continue;

            if (nxt >= 100)
            {
                cout << cur.second + 1;
                return 0;
            }

            visited[nxt] = true;
            q.push({nxt, cur.second + 1});
        }
    }
}
728x90
728x90

'백준 > 그래프' 카테고리의 다른 글

[ICPC] 백준 4803 - 트리  (0) 2021.08.24
백준 2423 - 전구를 켜라  (0) 2021.08.11
[KOI] 백준 2644 - 촌수계산  (0) 2021.06.28
백준 7562 - 나이트의 이동  (0) 2021.04.04
백준 20530 - 양분  (0) 2021.01.01