320x100
1991번 : 트리 순회
트리를 순회하는 세 가지 방법을 구현하면 된다. 재귀로 구현하되 탐색 순서(answer문자열에 노드를 추가하는 순서)만 달리해주면 쉽게 구현할 수 있다.
내 코드:
# dawitblog.tistory.com
from sys import stdin
input = stdin.readline
dic = {}
def preOrder(node):
global answer
answer += node
if dic[node][0] != '.':
preOrder(dic[node][0])
if dic[node][1] != '.':
preOrder(dic[node][1])
def inOrder(node):
global answer
if dic[node][0] != '.':
inOrder(dic[node][0])
answer += node
if dic[node][1] != '.':
inOrder(dic[node][1])
def postOrder(node):
global answer
if dic[node][0] != '.':
postOrder(dic[node][0])
if dic[node][1] != '.':
postOrder(dic[node][1])
answer += node
for _ in range(int(input())):
conn = input().split()
dic[conn[0]] = (conn[1],conn[2])
answer = ''
preOrder('A')
print(answer)
answer = ''
inOrder('A')
print(answer)
answer = ''
postOrder('A')
print(answer)
탐색 순서에 따라 answer += node 의 위치가 바뀐다.
'PS > solved.ac' 카테고리의 다른 글
[CLASS 4]백준 11660번 - 구간 합 구하기 5 (0) | 2021.03.14 |
---|---|
[CLASS 4]백준 5639번 - 이진 검색 트리 (0) | 2021.03.12 |
[CLASS 4]백준 1932번 - 정수 삼각형 (0) | 2021.03.04 |
[CLASS 4]백준 1629번 - 곱셈 (0) | 2021.03.03 |
[CLASS 4]백준 1149번 - RGB거리 (0) | 2021.03.02 |
댓글