Algorithm/BOJ

[BOJ 14248] 점프점프 C++

surimi🍥 2023. 3. 6. 13:18
반응형

난이도: Silver 2
번호: 14248
생성일: March 6, 2023 1:14 PM
알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색
언어: C++

14248번: 점프 점프

C++

#include <iostream>
#include <queue>
using namespace std;

int N, S;
int map[100001];
bool visit[100001];

int BFS()
{
    queue<int> Q;
    Q.push(S);
    visit[S] = true;
    int cnt = 1;

    while (!Q.empty())
    {
        int cur = Q.front();
        Q.pop();

        int up = cur + map[cur];
        if (up <= N && !visit[up])
        {
            visit[up] = true;
            Q.push(up);
            cnt++;
        }

        int down = cur - map[cur];
        if (down > 0 && !visit[down])
        {
            visit[down] = true;
            Q.push(down);
            cnt++;
        }
    }
    return cnt;
}

int main(void)
{
    cin >> N;
    for (int i = 1; i <= N; i++)
        cin >> map[i];
    cin >> S;

    cout << BFS();

    return (0);
}
반응형