-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
질문드립니다
22.02.15 00:13 작성 조회수 120
0
안녕하세요 강사님 수업 너무 잘 듣고 있습니다.
해당 코드에 대해 첫번째 테스트 케이스가 통과되지 않는데 도저히 이유를 알 수 없어 질문드립니다.
감사합니다.
package greedy;
public class Main {
public static int[] parent;
public static int findParent(int student) {
if (student == parent[student]) {
return student;
} else {
return parent[student] = findParent(parent[student]);
}
}
public static void union(int student1, int student2) {
int student1Parent = findParent(student1);
int student2Parent = findParent(student2);
if (student1Parent != student2Parent) {
parent[student1]= student2Parent;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int students = in.nextInt();
int studentPair = in.nextInt();
parent = new int[students + 1];
for (int i = 1; i <= students; i++) {
parent[i] = i;
}
for (int i = 1; i <= studentPair; i++) {
int student1 = in.nextInt();
int student2 = in.nextInt();
union(student1, student2);
}
int targetStudent1 = in.nextInt();
int targetStudent2 = in.nextInt();
int parent1 = findParent(targetStudent1);
int parent2 = findParent(targetStudent2);
if (parent1 == parent2) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
답변을 작성해보세요.
답변 0