본문 바로가기

STUDY/자료구조 및 알고리즘3

[BOJ 1260] DFS 와 BFS 기록 상 한 달 전에 풀었다고 되어 있는데.. 기억이 전혀 나질 않는다. 한 달 동안 과연 무슨 일을 했던 걸까. 겨우겨우 다시 공부를 해서 이번엔 DFS, BFS를 혼자 구현할 수 있게 되었다. DFS 는 스택 대신 재귀 함수를 사용했으며, BFS는 queue를 사용하여 구현했다. from collections import deque def make_graph(node, edge): graph = [[] for _ in range(node + 1)] for _ in range(edge): n, m = map(int, input().split()) graph[n].append(m) graph[m].append(n) for i in range(len(graph)): graph[i].sort() return.. 2021. 7. 18.
BFS # BFS - 깊이 우선 탐색 from collections import deque def make_graph(node, edge): graph = [[] for _ in range(node + 1)] for _ in range(edge): n, m = map(int, input().split()) graph[n].append(m) # 무방향 그래프일 때 graph[m].append(n) for i in range(len(graph)): graph[i].sort() return graph def BFS(graph, queue, visited): while len(queue) != 0: e = queue.popleft() if e not in visited: visited.append(e) for i in.. 2021. 7. 17.
DFS python으로 알고리즘을 다시 공부하기 시작했다. - 처음 만든 DFS 코드 # DFS - 깊이 우선 탐색 def make_dict(node): return {'node': node} def make_graph(node, edge): graph = [[] for _ in range(node)] # 연결 리스트 만들기 for _ in range(edge): n, m = map(int, input().split()) # 작은 순서대로 sorting 해야 되는데ㅠㅠ graph[n-1].append(make_dict(m)) graph[m-1].append(make_dict(n)) return graph def DFS(graph, stack, flag): while len(stack) != 0: top = st.. 2021. 7. 17.