본문 바로가기

Algorithm/기타

Tree - 난이도(하)

[ 문제 ]

완전 이진 트리를 만들고 레벨 전위 중위 후위 사선에 대한 출력을 할 수 있는 프로그램을 만드시오.

[10 9 17 11 23 8 66 21 2 33 51 7 28]

 

그리고 만들어진 트리를 이용하여 레벨, 전위, 중위, 후위, 사선 출력하시오

레벨 10 9 17 11 23 8 66 21 2 33 51 7 28

전위 10 9 11 21 2 23 33 51 17 8 7 28 66

중위 21 11 2 9 33 23 51 10 7 8 28 17 66

후위 21 2 11 33 51 23 9 7 28 8 66 17 10

사선1 10 9 11 21

사선2 10 17 66

 

[ 입 출력 조건 ]

입력

첫 줄에는 Case의 수 n( 1< n <= 50 )  이다 

그 다음 줄부터 명령어가 들어 온다.

숫자가 들어오면 이진 트리를 구성하는 노드(양수이며  2< n <=1000) 이고 문자가 들어 오면 출력을 한다.(A레벨 B전위 C중위 D후위 E 사선1 F사선2 )

* 을 만난다면 케이스의 입력이 종료된다.

 

출력

 각 케이스는 Case로 구분하고, 해당 명령어가 입력된다면 명령어를 출력하고 결과 출력을 한다. 각 명령어는 개행 문자로 구분한다.

 

[ 입출력 예 ]

2

10 9 17 A 11 F 23 B C D 8 66 21 2 33 51 7 28 A B C D E F *

10 9 17 1123 8 66 21 2 33 51 7 28 A B C D E F *

Case1

A 10 9 17

F 10 17

B 10 9 11 23 17

C 11 9 23 10 17

D 11 23 9 17 10

A 10 9 17 11 23 8 66 21 2 33 51 7 28

B 10 9 11 21 2 23 33 51 17 8 7 28 66

C 21 11 2 9 33 23 51 10 7 8 28 17 66

D 21 2 11 33 51 23 9 7 28 8 66 17 10

E 10 9 11 21

F 10 17 66

Case2

A 10 9 17 11 23 8 66 21 2 33 51 7 28

B 10 9 11 21 2 23 33 51 17 8 7 28 66

C 21 11 2 9 33 23 51 10 7 8 28 17 66

D 21 2 11 33 51 23 9 7 28 8 66 17 10

E 10 9 11 21

F 10 17 66

 

 


 Self-reflection


배보다 배꼽이 더 컷던 문제...알고리즘은 어렵지 않았지만, 입력 받는게 까다로웠다.


 Code




SampleData.zip