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

starkshn님의 프로필 이미지
starkshn

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-R

1068 트리 질문있습니다.

작성

·

336

0

http://boj.kr/389b7e0d0a034cdd81d006051776fb8a

어디에서 OutOfBounds가 발생하는 지 모르겠습니다...

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

코드봤는데요.

_isUse이거요. 의미하는바가 뭔가요?

 

감사합니다.

 

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

노드를 실제로 지우지는 않고 사용가는한지 아닌지의 여부를 나타내고 싶어서 넣은 변수입니다. isUse가 false라면 사용불가능한 노드라 마지막에 갯수셀때 제외 할려고 넣어두었습니다.

큰돌님의 프로필 이미지
큰돌
지식공유자

아 이해했습니다. 이 코드의 문제점은 이거 같아요.

        if (vec.size() == 0)
        {
            n-> p_parent = nullptr;
            n-> _isLeaf = true;
            n-> _isUse = true;
        }

이 문제의 예시들을 보면

5
-1 0 0 1 1
2

이런식으로 나오죠?

그래서 첫번째 노드는 무조건 루트노드이다.

이렇게 생각하신 것 같은데

이 문제지문에 어떠한 부분에도 그런 말은 없습니다.

만약 부모가 없다면 (루트) -1이 주어진다.

단지 이런 말만 있을 뿐이죠.

해당 부분을 고려해주셔서 짜셔야 합니다.

 

감사합니다.

starkshn님의 프로필 이미지
starkshn

작성한 질문수

질문하기