문제
- SWEA 1231 중위순회 D4
- python
- 문제링크
나의 코드
- 트리를 생성한 후 중위순회를 진행해주는 문제다.
- 배열로 인덱스 별 값들을 받아줬고, 해당 배열에 대해 중위순회를 진행했다.
- 왼쪽 노드는 node * 2, 오른쪽 노드는 node * 2 + 1 으로 처리해주었다.
def inorder(idx):
if idx > N:
return
# if left node exists
if (idx * 2) <= N:
inorder(idx * 2)
# append node value to ans
ans.append(node[idx])
# if right node exists
if (idx *2 + 1) <= N:
inorder(idx * 2 + 1)
for tc in range(10):
N = int(input())
node = [0] * (N+1)
for n in range(N):
vals = list(input().split())
node[int(vals[0])] = vals[1]
ans = []
inorder(1)
print("#{} {}".format(tc +1, ''.join(ans)))
'개발공부 > algorithm' 카테고리의 다른 글
[SWEA][python] 4875.미로 - DFS (0) | 2021.03.04 |
---|---|
[SWEA][python] 5102.노드의 거리 - BFS (0) | 2021.03.04 |
[SWEA] [python] 5174, 5176, 5177, 5178 - Tree (0) | 2021.03.03 |
[SWEA][python] 1219.길찾기 - DFS (0) | 2021.03.02 |
[SWEA][python] 1218.괄호짝짓기 (0) | 2021.03.02 |