티스토리 뷰

PS

백준 2263. 트리의 순회

tose33 2022. 11. 22. 15:11

https://www.acmicpc.net/problem/2263

 

2263번: 트리의 순회

첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다.

www.acmicpc.net

 

트리를 순회하는 3가지 방법, preOrder, inOrder, postOrder에 대해서 더 자세히 생각해본 좋은 문제였다.

 

문제에서 주어지는건 이진트리의 inOrder와 postOrder의 결과이다.

postOrder: Left -> Right -> Root 

따라서 postOrder에서 마지막에 오는 노드가 루트노드다.

 

inOrder: Left -> Root -> Right 

따라서 inOrder 에서 루트 노드 기준으로 왼쪽에 있는 노드들이 left child, 오른쪽에 있는 노드들이 right child 다.

 

이 법칙에 따라 postOrder의 left child 부분, right child 부분

inOrder의 left child 부분, right child 부분 을 나눠서 재귀적으로 함수를 만들면 된다.

이 과정에서 postOrder의 마지막 부분이 항상 루트이기 때문에 루트값을 출력 -> left child -> right child 순으로 호출하면 자연스럽게 preOrder가 된다.

 

 

 

'PS' 카테고리의 다른 글

백준 2170. 선 긋기  (0) 2022.11.24
백준 18353. 병사 배치하기  (0) 2022.11.22
백준 1717. 집합의 표현  (0) 2022.11.22
백준 1788. 피보나치 수의 확장  (0) 2022.11.21
백준 1715. 카드 정렬하기  (0) 2022.11.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
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
글 보관함