DAMPER's blog

16928 뱀과 사다리 게임 본문

Problem Solving/BOJ 문제풀이

16928 뱀과 사다리 게임

DAMPER 2021. 4. 26. 02:44
728x90

www.acmicpc.net/problem/16928

 

16928번: 뱀과 사다리 게임

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

www.acmicpc.net

 

전형적인 BFS 문제.

1번칸부터 100칸까지 있으며 10 X 10 맵으로 되어있다. 하지만 이 문제에서는 그냥 100칸짜리 1차원 배열에 넣어도 상관 없다.

1번칸에서 100번칸까지 가면 되는 문제.

주사위를 굴려 1칸부터 6칸까지 갈 수 있으며, 해당 칸에 사다리가 있으면 더 앞으로(+), 뱀이 있으면 뒤로(-) 움직이게 된다.

 

100칸 int 배열에 사다리, 뱀 유무 정보(0 이상)와 점프할 칸 정보를 저장한다.

(0 이면 사다리, 뱀 없음, 0이 아니면 점프할 칸)

 

한번 방문했던 곳은 다시 방문할 필요없다. 다시 방문해도 이전 방문보다 더 빨리 100번째 칸에 도착할 수 없다.

 

1번칸을 Queue에 넣고 BFS를 돌리면 된다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <bits/stdc++.h>
using namespace std;
#define swap(a,b) (a)^=(b)^=(a)^=(b)
#define endl '\n'
typedef long long lld;
 
int main()
{
    ios_base::sync_with_stdio(NULL);
    cin.tie(NULL);
    cout.tie(NULL);
    int n, m;
    cin >> n >> m;
    vector<int> mp(1010), port(1010);
    vector<bool> check(101false);
    n += m;
    for(int i=1;i<101;i++) mp[i] = i;
    for(int i=0;i<n;i++)
    {
        int x, y;
        cin >> x >> y;
        port[x] = y;
    }
    queue<int> q;
    q.push(1);
    check[1= true;
    int cnt = 0;
    bool flag = false;
    while(!q.empty())
    {
        int size = q.size();
        while(size--)
        {
            int pos = q.front();
            q.pop();
            if(pos == 100)
            {
                cout << cnt;
                return 0;
            }
            for(int i=1;i<7;i++)
            {
                int tmp = pos+i;
                if(check[tmp] || tmp>100continue;
                if(port[tmp])      q.push(port[tmp]);
                else q.push(tmp);
                check[tmp] = check[port[tmp]] = true;
            }
        }
        cnt++;
    }
 
    return 0;
}
cs

728x90

'Problem Solving > BOJ 문제풀이' 카테고리의 다른 글

6064 카잉 달력  (0) 2021.04.29
1202 보석 도둑  (0) 2021.04.27
9019 DSLR  (0) 2021.04.25
5525 IOIOI  (0) 2021.01.11
1992 쿼드트리  (0) 2021.01.11