dohyeokkim   8년 전

어떤 데이터에 대해서 틀리는 걸까요?

yclock   8년 전

소스를 자세히 읽지는 않았습니다. (죄송합니다.)

5

2 5

4

1 2

1 3

4 3

4 5


이런 데이터를 주면 

main함수에서 s1 = tester1->getPath(); 을 실행시키고,

tree::getPath()에서 string s(1, val);을 실행시키는데,

val이 초기화가 되어있지 않은 지, EXC_BAD_ACCESS가 뜹니다.

dohyeokkim   8년 전

감사합니다.

not found일 때 tmpNode1과 tmpNode2를 다시 정의해주지 않았었군요.

106번째 줄 부분을 다음과 같이 수정했습니다.

하지만 아직도 틀려서 더 데이터를 넣어 봐야 할 거 같네요.

그런데 주신 데이터에 3의 부모가 2명인데 올바른 데이터인가요?


if (!found){
      roots[cnt_root] = new tree(x);

      tmpNode1 = roots[cnt_root];
      tmpNode2 = roots[cnt_root]->insertChild(y);
      cnt_root++;
    }


yclock   8년 전

읽어주셔서 감사합니다.

문제에서 부모의 수에 대한 언급이 없었기 때문에 (일반적으로 부모는 2명이지 않을까요...?)

데이터 상에 문제는 없다고 생각합니다.

제가 알기로는 저 문제가 KOI에서 나온 거로 기억하는데,

막장 데이터가 부모가 몇 십명(!!) 인 거로 기억합니다...(아마..?)

yclock   8년 전

잠깐 팁을 몇 개 드리자면,

이 문제는 더럽고 디버깅도 안되는 포인터를 사용하지 않고,

2차원 배열을 이용해서 풀 수 있습니다.(!!!)

dohyeokkim   8년 전

헐 부모가 2명 이상인 문제였다니...

dohyeokkim   8년 전

그러면 이 문제는 트리로 못 푸는 거 아닌가요??

dohyeokkim   8년 전

부모는 한 명이라고 합니다!

yclock   8년 전

트리로 BFS를 열심히 돌리면 풀 수 있을 듯 합니다.

입력 데이터에 사이클이 있는 경우가 없다는 보장을 할 수 있다면요.^^

yclock   8년 전

부모가 한 명인 데이터를 만들어야 겠군요!

yclock   8년 전

찾았습니다!

10

7 6

9

1 2

1 3

1 4

9 1

9 10

3 5

3 6

2 7

2 8

dohyeokkim   8년 전

아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

드디어 맞았습니다.

감사합니다.


제가 틀리던 이유는 tree가 char형을 value로 가지고 있기 때문이었습니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

주신 데이터 중 10이 '1'과 '0'으로 잘려서 이상하게 트리가 만들어져 있더라고요. ㅠㅠㅠ

yclock   8년 전

으악!!!!!

축하드립니다!!!!

오류를 찾았을 때의 그 기쁘면서 허무한 느낌 압니다!!!

최종적으로 문제를 푸셨다니 정말 다행이네요!

난 언제 풀지...? (귀찮)

댓글을 작성하려면 로그인해야 합니다.