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 |