Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Greedy
- 알고스팟
- 완전탐색
- 분할정복
- 세그먼트트리
- 문자열
- union-find
- Algospot
- stack
- 알고리즘문제해결전략
- 종만북
- DP
- 그리디
- priority_queue
- 백트래킹
- 백준
- 분리집합
- 동적계획법
- BOJ
- backtracking
- 이분탐색
- 너비우선탐색
- 스택
- DFS
- acm
- 누적합
- 다이나믹프로그래밍
- 유니온파인드
- 재귀
- BFS
Archives
- Today
- Total
DAMPER's blog
16928 뱀과 사다리 게임 본문
728x90
전형적인 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(101, 0), port(101, 0);
vector<bool> check(101, false);
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>100) continue;
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 |