PS/BOJ
백준 10451 순열 사이클 JAVA
_룰루
2021. 4. 10. 15:33
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
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
static int t, n;
static int[] arr; //배열
static boolean[] checked; //방문 여부
static int cnt; //사이클 갯수
//백준 10451번
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
t=sc.nextInt(); //테스트 케이스 숫자 받기
while(t-->0) {
n=sc.nextInt(); //순열 갯수 받을 것
cnt=0;
//배열들 크기 지정
arr = new int[n+1];
checked=new boolean[n+1];
//그래프에 입력받음
for(int i=1; i<=n; i++) {
arr[i] = sc.nextInt();
}
for(int i=1; i<=n; i++) {
if(checked[i]==false) {
dfs(i);
cnt++;
}
}
System.out.println(cnt);
}
}
static void dfs(int index) {
checked[index] = true;
if(checked[arr[index]]==false) {
dfs(arr[index]);
}else return;
}
}
반응형