들어가기 전에
직접 구현해보는 것만큼 중요한 학습 방법은 없습니다! 이론을 이해하는 것도 중요하지만, 실제로 코드를 작성하고 구현하는 과정을 통해 그 개념을 몸으로 익히는 것이 가장 효과적인 학습법입니다. 이번 시간에는 트리를 직접 구현해보면서, 그 구조와 동작 방식을 직접 체험하고, 이해의 깊이를 더하는 시간을 가지겠습니다. 트리의 개념을 실제 코드로 구현해보며, 그 동작 원리를 자세히 분석해보도록 합시다!
학습 목표
- 트리를 표현하는 다양한 방법에 대해 학습합니다.
- 트리를 만드는 기본적인 방법과 만드는 데 도움을 주는 라이브러리에 대해 알아봅니다.
강의 듣기
실습에서 사용하는 코드
tree = {
0: [1, 2],
1: [],
2: [3, 4],
3: [],
4: []
}
edges = [
[0, 1], [0, 2], [2, 3], [2, 4]
]
for edge in edges:
u, v = edge
print(f"u:{u} -> v:{v}")
tree = {
0: [],
1: [],
2: [],
3: [],
4: []
}
for u, v in edges:
tree[u].append(v)
tree[v].append(u)
print(tree)
tree = {}
for u, v in edges:
print(tree)
if u not in tree:
tree[u] = []
print('비어있는 리스트 추가: ', tree)
tree[u].append(v)
print('노드 추가: ', tree)
tree = {}
for u, v in edges:
if u not in tree:
tree[u] = []
tree[u].append(v)
print(tree)
from collections import defaultdict
tree = defaultdict(list)
for u, v in edges:
tree[u].append(v)
print(tree)