알고리즘 문제풀이
Q9496 텀프로젝트(시간초과로 실패)
JihyunLee
2019. 5. 7. 17:40
반응형
package graph;
import java.util.*;
public class Q9496 {
static int num=0;
static int[] arr;
static int[] visit;
static int sum=0;
static int index=0;
static ArrayList<Integer> al;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int test = Integer.parseInt(scan.nextLine());
while(test>0) {
test--;
sum=0;
num = Integer.parseInt(scan.nextLine());
arr = new int[num+1];
visit = new int[num+1];
String s = scan.nextLine();
StringTokenizer st = new StringTokenizer(s," ");
for(int i=1; i<=num; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
for(int i=1;i<=num; i++) {
al = new ArrayList<Integer>();
if(visit[i]==0) find(i);
}
System.out.println(num-sum);
}
}
public static void find(int i) {
visit[i] = 1;
al.add(i);
if(arr[i] == i) {
sum += 1;
return;
}
index = al.indexOf(arr[i]);
if(index!=-1){
int n= al.size()-index;
sum = sum + n;
return;
}
else {
int ni = arr[i];
if(visit[ni]==0) find(ni);
}
}
}
반응형