본문 바로가기

전체 글460

[Algorithm] DFS/BFS DFS(Depth-First Search) 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 그래프는 노드(Node)와 간선(Edge)으로 표현되며 이때 노드를 정점(Vertex)이라고도 말한다. # DFS 메서드 정의 def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end=' ') for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2,3,8], [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] #각 노드가 방문된 정보를 리스트 자료형으로 표현(1차원 리스트) visi.. 2023. 3. 16.
[Algorithm] 트리의 순회(Tree Traversal) 안녕하세요! 공대남입니다. 오늘은 트리의 순회구조인 전위순회, 중위 순회, 후위 순회을 알아보겠습니다. class Node: def __init__(self, data, left_node, right_node): self.data = data self.left_node = left_node self.right_node = right_node def pre_order(node): print(node.data, end=' ') if node.left_node != None: pre_order(tree[node.left_node]) if node.right_node != None: pre_order(tree[node.right_node]) def in_order(node): if node.left_node !.. 2023. 3. 15.
우선순위 큐(Priority Queue) 안녕하세요! 공대남입니다. 오늘은 우선순위 큐(Priority Queue)에 대해 알아보겠습니다. Queue는 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 특징을 가진 선형 자료구조입니다. 우선순위 큐(Priority Queue) 또한 큐와 비슷하지만 다른 점은 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 자료구조입니다. => 우선순위 큐는 array의 항상 마지막 값이 최대값을 항상 보장하지는 않기 때문에 arr.sort()를 하거나 min, max함수를 이용해 최대,최소값을 구하면 된다 import sys import heapq input = sys.stdin.readline def heapsort(iterable): h = [] result = [] .. 2023. 3. 15.
[Algorithm] 스택(Stack), 큐(Queue) 안녕하세요! 공대남입니다. 오늘은 stack에 대해 알아볼게요. 스택(Stack)이란? 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조 만약 스택이 비어있을 때 자료를 꺼내려고 시도를 하면 스택 언더플로우(Stack Underflow)가 발생하고 반대로, 스택이 꽉 차있을 때 자료를 넣으려고 하면 스택 오버플로우(Stack Overflow)가 발생하게 됩니다. 웹 브라우저 뒤로가기 : 가장 나중에 열린 페이지부터 뒤로 가기를 실행합니다. 문서작업에서 Ctrl+Z : 가장 나중에 수정한 내역부터 되돌립니다. 역순 문자열 만들기 : 맨 끝의 문자열부터 차례대로 만들어집니다. 후위 표기법 계산 재귀적 알고리즘 큐(Queue) 란? 선입선출(FIFO, Fir.. 2023. 3. 13.
728x90