되도록이면 맞은 코드 말고 틀린 코드를 올려주세요. 한 글자도 안 바꾸고 그대로 올리는 게 좋습니다.
61번 줄에서 일어나는 일은 새로 할당한 메모리에 있는 데이터를 배열에다 복사하는 겁니다. 그리고 나서 새로 할당한 메모리는 할당만 되어있고 누수가 되고 있네요. 즉 애써 동적할당 받은 메모리를 반환도 안 하고 갖다 버리고 있습니다. 아무튼 이 때 데이터를 배열에 복사하기 때문에 노드의 v vector가 초기화됩니다. 그런데 문제에 보면 어떤 노드의 부모의 인덱스가 노드의 인덱스보다 작다는 조건이 없으니까, 자식이 부모보다 인덱스가 작은 경우는 이미 자식이 v에 인덱스를 넣어놓은 게 초기화가 되겠죠.
wlshddlek 3년 전
우선 답은 맞았습니다. 그런데 밑에 코드 메모리를 동적할당받으면 틀렸다고 뜨고 동적할당 받지않으면 맞다고 합니다. 이유가 뭘까요?? 동적할당 받는 부분은 밑에 코드에 표시해두었습니다.