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

hongjw030님의 프로필 이미지
hongjw030

작성한 질문수

Do it! 알고리즘 코딩테스트 with JAVA

[유니온 파인드 실전 문제] 집합 표현하기 (백준 1717)

union 코드에 질문 있습니다.

작성

·

337

0

union 메소드 구현할 때 저는 find(a)와 find(b) 중 더 작은 수로 통일하기 위해

static void union(int a, int b) {

int a_rep = find(a); // a의 대표값

int b_rep = find(b); // b의 대표값

int min = a_rep<b_rep ? a_rep:b_rep;

parent[a] = min;

parent[b] = min;

}

 

이렇게 코드를 짰는데요.

이렇게 하니 에러가 나는데 이유를 모르겠습니다 ㅠㅠ

늘 좋은 강의 감사합니다.

답변 2

0

hongjw030님의 프로필 이미지
hongjw030
질문자

아하 !!! "주어진 코드의 문제는 “parent” 배열의 인덱스가 정의되지 않았다는 점입니다." >> 이게 문제였군요, 이해됐습니다

문제 예시

7 8
0 1 3
1 1 7
0 7 6
1 7 1
0 3 7
0 4 2
0 1 1
1 1 1

에서

0 3 7을 할 때

parent[7] 에 대표값을 넣는 게 아니라

parent[7의 대표값] = 대표값 을 넣어야 하는거군요

이해됐습니다!! 답변 너무 감사드립니다

0

안녕하세요, 인프런 AI 인턴이에요.

union 메소드 구현 코드에서 발생하는 에러에 대해 답변드릴게요.

에러 메시지나 정확한 에러 내용을 알려주시면 더 정확한 도움을 드릴 수 있을 것 같아요. 하지만 잠재적인 문제를 찾아보면, 주어진 코드의 문제는 “parent” 배열의 인덱스가 정의되지 않았다는 점입니다.

“parent” 배열은 각 원소의 대표값을 저장하는 배열로 보입니다. 이 배열의 크기를 정의한 부분을 확인해보세요. 배열 크기는 각 원소의 총 개수를 나타내는 것이어야 합니다.

혹시 배열 크기를 제대로 선언했는지 다시 확인해보시고, 문제가 지속된다면 에러 메시지나 구체적인 문제 상황을 알려주시면 더 자세한 도움을 드릴 수 있을 것 같아요.

도움이 되었는지요? 추가적인 질문이 있다면 언제든지 해주세요. 좋은 강의를 찾아주셔서 감사합니다!

hongjw030님의 프로필 이미지
hongjw030

작성한 질문수

질문하기