• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문드립니다

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

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!