https://www.acmicpc.net/problem/14725
14725번: 개미굴
첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N개가 주어진다. (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이
www.acmicpc.net
간단한 트라이 문제입니다. dict를 활용하여 연결되는 개미굴을 이동할 때마다 dict도 같이 이동하면서 없는 경우에는 dict를 생성해주면 된다. 출력을 할때에는 dict의 key들이 먹이들이 되므로 key들을 정렬하여 dfs로 탐색하면서 출력해주면 됩니다.
import sys, heapq
from collections import deque, defaultdict
sys.setrecursionlimit(10 ** 8)
INT_MAX = sys.maxsize
sys.stdin = open("input.txt", "r")
input = sys.stdin.readline
graph = {}
n = int(input())
for _ in range(n):
data = list(input().split())
cnt = int(data[0])
cur = graph
for i in range(cnt):
food = data[1 + i]
if food not in cur:
cur[food] = {}
cur = cur[food]
def dfs(cur_graph, cnt):
keys = cur_graph.keys()
for key in sorted(keys):
for i in range(cnt):
print("--", end="")
print(key)
dfs(cur_graph[key], cnt + 1)
dfs(graph, 0)
'문제 해결 > BOJ' 카테고리의 다른 글
[백준] 나만 안되는 연애 (1) | 2023.03.19 |
---|---|
[백준] 영우는 사기꾼? (0) | 2023.03.18 |
[백준] 스크루지 민호 2 (0) | 2023.03.16 |
[백준] 연산자 끼워넣기 (3) (0) | 2023.03.15 |
[백준] 거의 최단경로 (1) | 2023.03.14 |