[파이썬] 백준 14725번 개미굴
작성:
백준 #14725 개미굴
# 출력: 개미굴의 시각화된 구조
# 체크할 조건
# 같은 층에 여러 방이 있는 경우 사전 순서대로 나온다.
# 하나의 로봇 개미는 끝까지 간다.
# 트리를 만든 후에 DFS로 출력한다.
# dict를 하나의 노드로 만든다.
# 각 노드 구성 > 부모노드이름 : {자식노드이름: 자식노드들dict()}
# apple: {apple: {}}, banana: {kiwi: {}}}
def trav(tree, key, dashs):
child = tree.get(key)
if child:
for k in sorted(child.keys()):
print(dashs + k)
if child.get(k):
trav(child, k, dashs + '--')
def solution(N):
tree = dict()
for _ in range(N):
inp = list(input().split())
k, data = int(inp[0]), inp[1:]
if not data[0] in tree: tree[data[0]] = dict()
temp = tree
for i in range(1, len(data)):
children = temp.get(data[i-1])
if children and (data[i] in children):
temp = children
continue
children[data[i]] = dict()
temp = children
for key in sorted(tree.keys()):
print(key)
trav(tree, key, '--')
if __name__ == '__main__':
solution(int(input()))
댓글남기기