문제
트리에 포함된 노드간의 연결정보가 입력될 때,
트리 조건을 다음 규칙에 맞도록 출력하는 프로그램을 작성하시오.
이진트리는 다음과 같은 규칙으로 표현된다.
- 입력되는 트리는 항상 이진 트리임을 보장한다.
- 모든 노드는 알파벳 소문자를 값으로 하며, 모든 노드의 알파벳은 서로 다르다.
- 입력되는 트리의 루트노드는 항상 "a"다. (모든 입력에 "a"는 존재한다.)
- 자식이 하나일 경우는 항상 오른쪽 자식이고, 둘일 경우에는 오른쪽 자식이 사전순으로 빠른 알파벳으로 배치한다.
- 출력할 수 있는 문자는 "알파벳 소문자", "-", "+", "|", "." 으로 구성된다.
- 오른쪽 자식은 부모와 같은 행의 오른쪽에 배치된다.
- 왼쪽 자식은 부모보다 더 아래쪽 행에 배치된다.
- 깊이가 같은 모든 노드들은 모두 같은 열에 배치된다.
규칙이 적용된 사항에 대해서는 입력예시를 참고한다.
입력
첫 번째 줄에 노드의 수 n이 입력된다. ( 3 <= N <= 26)
두 번째 줄부터 n-1줄에 걸쳐서 엣지가 연결하는 두 노드가 공백으로 구분되어 입력된다.
출력
규칙에 맞도록 트리의 구조를 출력한다.
예제 #1
6
a b
c b
d c
e d
d f
-a-b-c-d-e
.......+-f
예제 #2
9
a b
a c
b f
b g
c d
c e
d h
d i
-a-b-f..
.|.+-g..
.+-c-d-h
...|.+-i
...+-e..
출처
koistudy|comkiwer