펭로그

[C++] 백준 BOJ 5566 주사위 게임 본문

Study/PS(Algorithm)

[C++] 백준 BOJ 5566 주사위 게임

노랑펭귄 2019. 1. 14. 17:35

문제링크 : https://noj.am/5566

주사위의 지시사항 대로 구현하면 쉽게 풀리는 단순 시뮬레이션 문제이다.

1. 현재 위치에서 주사위를 던져 해당 눈금만큼 진행한다.

2. 보드의 범위를 초과 했는지 체크한다.

3. 초과하지 않았으면 진행된 자리에 있는 지시사항을 수행한다.

4. 보드의 범위를 초과 했는지 체크한다.


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
// BOJ_5566 주사위 게임
#include <iostream>
 
using namespace std;
 
int direction[1001];
int dice[1001];
 
int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    freopen("../input.txt""r", stdin);
 
    int board_cnt;
    int dice_cnt;
    cin >> board_cnt >> dice_cnt;
 
    for(int i = 1; i <= board_cnt; i++)
        cin >> direction[i];
 
    for(int i = 1; i <= dice_cnt; i++)
        cin >> dice[i];
 
    int cnt = 0;
    int player_position = 1;
 
    while(true){
        // 현재위치에서 주사위 눈금만큼 진행
        player_position += dice[++cnt];
        if(player_position >= board_cnt)
            break;
        // 진행한 위치에 있는 지시사항 수행
        player_position += direction[player_position];
        if(player_position >= board_cnt)
            break;
    }
    cout << cnt;
 
    return 0;
}
cs


Comments