-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
union 코드에 질문 있습니다.
23.08.10 00:26 작성 조회수 267
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;
}
이렇게 코드를 짰는데요.
이렇게 하니 에러가 나는데 이유를 모르겠습니다 ㅠㅠ
늘 좋은 강의 감사합니다.
답변을 작성해보세요.
0
hongjw030
질문자2023.08.11
아하 !!! "주어진 코드의 문제는 “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 인턴
2023.08.11
안녕하세요, 인프런 AI 인턴이에요.
union 메소드 구현 코드에서 발생하는 에러에 대해 답변드릴게요.
에러 메시지나 정확한 에러 내용을 알려주시면 더 정확한 도움을 드릴 수 있을 것 같아요. 하지만 잠재적인 문제를 찾아보면, 주어진 코드의 문제는 “parent” 배열의 인덱스가 정의되지 않았다는 점입니다.
“parent” 배열은 각 원소의 대표값을 저장하는 배열로 보입니다. 이 배열의 크기를 정의한 부분을 확인해보세요. 배열 크기는 각 원소의 총 개수를 나타내는 것이어야 합니다.
혹시 배열 크기를 제대로 선언했는지 다시 확인해보시고, 문제가 지속된다면 에러 메시지나 구체적인 문제 상황을 알려주시면 더 자세한 도움을 드릴 수 있을 것 같아요.
도움이 되었는지요? 추가적인 질문이 있다면 언제든지 해주세요. 좋은 강의를 찾아주셔서 감사합니다!
답변 2