gi5005   3년 전

일단 기본적으로 예제는 정상적으로 동작하는거같은데 틀렸다고 나옵니다. 반례가 뭐가있는걸까요

ckdgus2482   3년 전

입력 받을때 tree에 right, left 순으로 pair 만들어서 넣으셨는데 읽을땐 left, right로 취급하고 있는 것 같습니다

아마 그부분이 틀린 이유일 것 같습니다

그 외에 몇 가지 조언을 드리고 싶네요

1. 지금 재귀호출하면서 string을 계속 값 복사해서 넘기고 있어서 복사오버헤드가 큽니다

출력을 한 문자 단위로 노드 방문할때마다 하면 string을 전달해줄 필요가 없어 복사를 피할 수 있습니다

2. 트리도 이진 트리의 특성상 일차원 배열로 표현할 수 있는데 코드도 훨씬 짧고 깔끔해질 것 같습니다

3.방문여부를 저장하는 vst배열은 필요가 없습니다

루트부터 탑다운으로 탐색하는 것이므로 부모나 조상으로 올라가는 역방향 간선을 타지 않습니다(트리가 방향성이 없긴하지만 루트가 있는 트리이므로 개념적으로 표현하자면)

따라서 탐색중 같은 노드에 중복 방문하는 경우가 없습니다

gi5005   3년 전

아하....그렇군요 재귀로 하나하나 출력하면서 내려가면 역방향으로 올라갈필요가 없다는걸 알았습니다  답변 감사합니다.

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