인프런 커뮤니티 질문&답변

니냐롱님의 프로필 이미지
니냐롱

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

6. 친구인가(Uion&Find 알고리즘)

9_6 친구인가(서로소문제)

작성

·

341

0

안녕하세요 교수님, 질문이있어서 글 남깁니다.

교수님과 살짝 다른풀이로 풀었는데, 채점하는 사이트에서 계속 첫번째 케이스에서 runtime error가 나서요ㅠㅠ

다른 테스트케이스들은 잘돌아가는데 첫번째만 안돌아갑니다ㅜㅜ

자바 이클립스에서도 문제없이 예제테스트케이스 (첫번째 테스트케이스) 돌아갑니다....

 

// 서로소 집합 (유니온파인드)

 

import java.util.*;

 

 

class Main {

 

static int n,m=0; //n:학생수, m:순서쌍개수

static int[] parent;

 

public static int find(int x) {

if(x==parent[x]) return x;

else

return parent[x]=find(parent[x]); //최상위 부모 누구인지

 

 

}

 

 

public static void main(String[] args) {

Main tree=new Main();

Scanner scanner=new Scanner(System.in);

n=scanner.nextInt();

m=scanner.nextInt();

parent=new int[n+1];

 

//배열 초기화 해야됨 - 자기자신이 부모가 되도록 초기화

for(int i=1; i<=n; i++) {

parent[i]=i;

}

 

 

//입력받아서 배열만들기

for(int i=1; i<=m; i++) {

int par=scanner.nextInt();

int son=scanner.nextInt();

parent[son]=par;

}

 

int a=scanner.nextInt();

int b=scanner.nextInt();

 

 

 

if( (tree.find(a)) != (tree.find(b)) )

{ System.out.print("NO"); }

 

else System.out.print("YES");

 

}

 

}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

1번 케이스입니다. 디버그해보세요.

20 22
18 9
4 15
12 16
9 10
10 7
14 9
13 3
17 5
6 1
1 14
12 4
9 11
7 5
17 4
6 17
12 9
18 10
17 8
11 18
7 19
4 3
3 4
10 15
니냐롱님의 프로필 이미지
니냐롱

작성한 질문수

질문하기