티스토리 뷰

 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제풀이

 

 

특정 단어를 트리 형태로 구성한 것을 in-order 형식으로 순회하여 원래 단어를 알아내는 문제다.

 

 

[제약사항]

 

총 10개의 테스트 케이스가 주어지며, 총 노드의 개수는 100개를 넘어가지 않는다.

트리는 완전 이진 트리 형식으로 주어지며, 노드당 하나의 알파벳만 저장할 수 있다.

노드가 주어지는 순서는 위 그림과 같은 숫자 번호대로 주어진다.

 

 

 

트리가 갖는 정점의 총 수를 N이라 할 때, 트리가 완전 이진 트리 형식이기 때문에 N/2번 이하인 정점들만 자식을 가진다.

정점수가 짝수개인 경우에 N/2번째 정점은 왼쪽 그림에서 보이는 것처럼 왼쪽 자식만 가지고 있고, 홀수개인 경우에는 오른쪽 그림과 같이 왼쪽, 오른쪽 자식 모두 가지고 있다.

 

 

중위 순회는 왼쪽 서브 트리, 노드, 오른쪽 서브 트리 순으로 방문한다.

간단하게 재귀로 구현할 수 있다.

 

 

코드

 

C++ 코드

 

 

Java 코드

 

 

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA 1233] 사칙연산 유효성 검사 C++  (0) 2021.08.02
[SWEA 1232] 사칙연산 C++  (0) 2021.08.02
[SWEA 1238] Contact C++  (2) 2021.07.29
[SWEA 1226] 미로1 C++/Java  (0) 2021.07.29
[SWEA 1225] 암호생성기 C++/Java  (0) 2021.07.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함