반응형
난이도: Silver 2
번호: 14248
생성일: March 6, 2023 1:14 PM
알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색
언어: C++
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);
}
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ 2667] 단지번호붙이기 C++ (0) | 2023.03.08 |
---|---|
[BOJ 17198] Bucket Brigade C++ (0) | 2023.03.07 |
[BOJ 24447] 알고리즘 수업 - 너비 우선 탐색 4 C++ (0) | 2023.03.04 |
[BOJ 25416] 빠른 숫자 탐색 C++ (0) | 2023.03.04 |
[BOJ 1697] 숨바꼭질 C++ (0) | 2023.03.04 |