이거 전에 풀어서 맞춘 것 같은데??? 왜 또 푸는 것 같지
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>
#include <stdio.h>
#include <math.h>
#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using iis = pair<int, string>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;
void solve() {
int n;
scanf("%d", &n);
vector<int> v(n + 1);
for (int i = 1; i <= n; i++)
scanf("%d", &v[i]);
vector<bool> check(n + 1);
int next = v[1];
int cnt = 1;
while (!check[next]) {
if (next == n) {
printf("%d\n", cnt);
return;
}
check[next] = true;
next = v[next];
cnt++;
}
printf("0\n");
}
int main() {
int t;
scanf("%d", &t);
for (int i = 0; i < t; i++)
solve();
return 0;
}
'백준' 카테고리의 다른 글
12887 경로 게임 (0) | 2021.09.05 |
---|---|
제 3회 소프트콘 (1) | 2021.08.28 |
10158 개미 (0) | 2021.08.28 |
3048 개미 (0) | 2021.08.16 |
2960 에라토스테네스의 체 (0) | 2021.08.16 |