-
[10451] 순열 사이클BOJ 2021. 8. 30. 17:15
https://www.acmicpc.net/problem/10451
10451번: 순열 사이클
1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3
www.acmicpc.net
입력은 방향그래프가 들어온다. 아래와 같이 들어오면 3을 출력하면 된다.
예제의 두번째 그래프는 아래와 같다.
자기 자신을 가리키는 노드는 그림에는 없지만, 5개로 그림의 2개와 더해 7이 정답이다.
<소스코드>
1234567891011121314151617181920212223242526272829303132#include<stdio.h>#include<string.h>int n, a[1001];bool visit[1001];void f(int cur) {visit[cur] = true;int i;int next = a[cur];if (visit[next] == false) {f(next);}return;}int main(void) {int i,t;scanf("%d", &t);while (t--) {scanf("%d", &n);memset(visit, false, sizeof(visit));for (i = 1; i <= n; i++)scanf("%d", &a[i]);int cnt = 0;for (i = 1; i <= n; i++) {if (visit[i] == false) {f(i);cnt++;}}printf("%d\n", cnt);}return 0;}cs 재귀함수를 이용해 구현하였다.
'BOJ' 카테고리의 다른 글
[6549] 히스토그램에서 가장 큰 직사각형 (0) 2021.08.30 [15685] 드래곤 커브 (0) 2021.08.30 [1303] 전쟁 - 전투 (0) 2021.08.30 [5557] 1학년 (0) 2021.08.30 [2212] 센서 (0) 2021.08.30