Identity_Protfolio&Interview/07_Presentation & Lecture
[문지의 알고리즘 강의 5강] 자료구조 알기
스타트업_디벨로퍼
2020. 12. 18. 15:51
-
스택
참고링크프로그래머스 문제여러분의 참고 링크 - 프로그래머스
- [Python] Stack 사용하기
-
큐
https://www.youtube.com/watch?v=yAiZ1AVU8Aw
설명 : 줄을 서는 행위와 유사 / 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 / 그렇기에 FIFO(First-In, First-out) 또는 LILO(Last-in, Last-out) 방식.으로 스택과 꺼내는 순서가 반대이다.
알아둘 내용
- Engueue : 큐에 데이터를 넣는 기능
- Dequeue : 큐에서 데이터를 꺼내는 기능
- visualgo 사이트에서 시연해보며 이해하기
참고 링크
VisuAlgo - Linked List (Single, Doubly), Stack, Queue, Deque
- 프로그래머스
-
트리/ 힙/ 그래프
https://www.youtube.com/watch?v=LnxEBW29DOw&feature=youtu.be&ab_channel=엔지니어대한민국
https://www.youtube.com/watch?v=jfwjyJvbbBI&feature=youtu.be&ab_channel=엔지니어대한민국
참고링크실습하기프로그래머스 문제여러분의 참고 링크 - 프로그래머스
- [알고리즘] 순열, 조합, 그래프 표현 _ 파이썬
- 그래프 이해
-
깊이/너비 우선 탐색
https://www.youtube.com/watch?v=l0Rsu7dziws
참고링크 프로그래머스 문제여러분의 참고 링크 - 프로그래머스
- 깊이 우선 탐색 (DFS)
def DFS_with_adj_list(graph, root):
visited = []
stack = [root]
while stack:
n = stack.pop()
if n not in visited:
visited.append(n)
stack += graph[n] - set(visited)
return visited
graph_list = {1: set([3, 4]),
2: set([3, 4, 5]),
3: set([1, 5]),
4: set([1]),
5: set([2, 6]),
6: set([3, 5])}
root_node = 1
print(BFS_with_adj_list(graph_list, root_node))
from collections import deque
def BFS_with_adj_list(graph, root):
visited = []
queue = deque([root])
while queue:
n = queue.popleft()
if n not in visited:
visited.append(n)
queue += graph[n] - set(visited)
return visited
graph_list = {1: set([3, 4]),
2: set([3, 4, 5]),
3: set([1, 5]),
4: set([1]),
5: set([2, 6]),
6: set([3, 5])}
root_node = 1
print(BFS_with_adj_list(graph_list, root_node))
반응형