본문 바로가기
전공공부/코딩테스트

(c++) 백준 "16928) 뱀과 사다리 게임"

by 시아나 2022. 6. 10.

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

 

16928번: 뱀과 사다리 게임

첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으

www.acmicpc.net


 

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int togo[101] = { 0 };
int d[101] = { 0 };
int main() {
	int N, M; cin >> N >> M;
	for (int i = 0; i < N + M; i++) {
		int u, v; cin >> u >> v;
		togo[u] = v;
	}
	queue<int> q; q.push(1);
	while (!q.empty()) {
		int n = q.front();
		q.pop();
		for (int i = 1; i <= 6; i++) {
			int next = n + i;
			if (next > 100) break;
			if (togo[next] > 0) {
				next = togo[next];
			}
			if (d[next] == 0) {
				d[next] = d[n] + 1;
				q.push(next);
			}
		}
	}
	cout << d[100] << endl;
	return 0;
}