r값이 무진장 이상하네요...
그리고 루트를 지운 경우 배열의 음수인덱스에 접근하게 됩니다.
1068번 - 트리
아 네 맞아요 37번 라인에 r = i - 1; 이라고 코딩을 제가 바꿨었거든요.
처음에는 r = i; 라고 코딩했었는데.. 이게 제 작업환경에서 실행시켜보니 자꾸 i + 1 값이 들어가더라구요.
방금도 컴파일 하면서 확인했는데 if 문안에서는 분명히 i 값이 들어가는데 if 문을 빠져나오면서 부터 i+1 값이 들어가더라구요....
비주얼 스튜디오 15를 쓰는데.. 컴을 오래켜놔서 그런가 뭔가 메모리 오류 같은게 있는 것 같습니다.
r = i 로 바꿔서 제출하니 바로 맞았습니다 뜨네요.. 일단 전 재부팅하러.. ㅎㅎ 답변 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
csh519 6년 전
여러 테스트케이스 해봤는데 틀린부분을 모르겠네요 ㅠㅠ
t[] = 부모노드를 가리킵니다.
num[] = 해당노드가 가지고 있는 자식의 수 입니다.
a = 지워지는 노드입니다.
r= 루트 노드의 인덱스입니다.
노드를 입력받은 다음 지워지는 노드를 입력받고,
지워지는 노드가 가리키는 부모노드의 num[] 값을 1 감소시켜줍니다.(자식이 아니므로 이젠)
그리고 자식이 없는 즉 num[] 값이 0인 노드들만 solve()를 돌립니다.
부모를 찾아 DFS를 진행하게 되고, r(루트 노드) 혹은 본인이 루트노드 일때 1을 반환하고.
a(지우는 노드)인 경우에는 0을 반환합니다.
로직상 틀린부분이 없는 것 같아 질문드립니다.