자료구조

    [파이썬으로 배우는 자료구조] 우선순위 큐(Priority Queue), 힙(Heap)

    우선순위 큐(Priority Queue)란? 일반적인 큐(Queue) 자료구조는 FIFO 구조라는 것을 배웠습니다. 큐 배우기 --> 2022.06.29 - [CS/자료구조] - [파이썬으로 배우는 자료구조] 스택(Stack), 큐(Queue) [파이썬으로 배우는 자료구조] 스택(Stack), 큐(Queue) 1. 스택(Stack) 1.1. 스택이란? 스택은 후입선출의 자료구조로 LIFO(Last In First Out)라고 불리기도 합니다. 실생활에서 예를 들어볼까요? 우리가 보통 접시를 선반에 차곡차곡 쌓아올린 후 쌓여있는 c4u-rdav.tistory.com 그렇다면 우선순위 큐는 무엇을 의미할까요?? 먼저 들어온 데이터를 무작정 먼저 처리하는 구조가 아니라 데이터에 우선순위에 따라 우선순위가 높은..

    [파이썬으로 배우는 자료구조] 트리(Tree)

    트리(Tree)란? 트리는 노드(Node)와 엣지(Edge)로 구성되어 있습니다. 위 그림에서 원이 노드, 선이 엣지이고, 이를 이용해서 사이클(순환 구조)을 이루지 않도록 구성한 구조를 마치 나무 같다 하여 트리라고 불립니다. 사이클이 없어서 아래로만 뻗어나가고 계층적으로 표현됩니다. 용어 노드(Node): 트리에서의 개별 데이터 루트(Root): 트리 시작점에 있는 노드(최상위) 깊이(Depth): 루트를 기준으로 특정 노드까지의 깊이를 의미. 루트는 깊이가 0 높이(Height): 리프 노드를 기준으로 특정 노드까지의 높이를 의미. 리프 노드는 높이가 0 계층(Level): 트리에서 같은 깊이에 있는 노드들을 같은 계층에 있다고 함. 부모 노드(Parent Node): 어떤 노드와 이전 계층에서 연..

    [파이썬으로 배우는 자료구조] 그래프(Graph)

    그래프(Graph)란? 그래프는 노드(정점)와 간선으로 이루어진 집합으로 표현되는 자료구조입니다. 위 그래프에서 A, B, C는 노드이고, 이 노드를 연결한 선이 간선입니다. 두 노드가 연결되어 있으면 두 노드는 인접하다고 표현됩니다. 따라서 위의 그래프에서는 A, B가 서로 인접하고, A, C가 서로 인접합니다. 또한 그래프는 위 그림과 같이 간선이 방향을 갖고 있지 않는 무방향 그래프, 간선이 방향을 갖고 있는 방향 그래프, 그리고 간선이 가중치를 갖고 있는 가중치 그래프로 나뉩니다. 위의 그래프는 간선이 방향을 갖고 있으므로 방향 그래프입니다. 무방향 그래프처럼 A, B가 모두 연결되어 있는 것이 아니라 A, B를 잇는 간선이 A에서 B 쪽으로 방향을 갖고 있어서 A가 B로는 인접하고, B에서 A로..

    [파이썬으로 배우는 자료구조] 해시(Hash)

    해시(Hash)란? 일반적으로 말하는 해시/해쉬(Hash)는 해시 테이블(Hash Table)로 Key와 Value를 매핑해서 데이터를 저장하는 자료구조입니다. 파이썬에서는 기본적으로 제공되는 딕셔너리 자료형이 해시 테이블과 같은 구조입니다! 쉽게 이해하기 위해서 관련 용어를 먼저 설명한 뒤에 특징을 살펴보도록 하겠습니다. 용어 키(Key) - 고유의 값으로 해시 함수의 Input. 다양한 길이의 값이 될 수 있다. 해시 테이블 (Hash Table) 또는 해시 맵(Hash Map) - Key와 Value를 매핑해서 데이터를 저장하는 자료구조 해시 함수(Hash Function) - 임의의 값을 고정된 길이의 데이터로 변환하는 함수. 다양한 길이의 키를 고정된 길이의 해시로 변환시키므로 저장소를 효율적으..

    [파이썬으로 배우는 자료구조] 스택(Stack), 큐(Queue)

    스택(Stack) 스택이란? 스택은 후입선출의 자료구조로 LIFO(Last In First Out)라고 불리기도 합니다. 실생활에서 예를 들어볼까요? 우리가 보통 접시를 선반에 차곡차곡 쌓아올린 후 쌓여있는 접시에서 접시를 꺼낼때는 가장 위에 있는 접시를 꺼내어 결국 마지막에 올린 접시를 먼저 꺼내는 구조가 됩니다. 여기서 접시를 데이터로 비유하면 이해하기 편합니다! 이러한 스택 자료구조는 컴퓨터 메모리 공간에서 함수 호출과 관계되는 여러 변수들이 저장되는 데 사용되고, 데이터 처리 알고리즘에서도 중요하게 사용되니 잘 알아두도록 합시다! 스택의 구조 위의 접시로 예를 들었듯이 스택 자료구조는 맨 위에서만 데이터를 삽입하고 삭제하는 것이 가능합니다. 데이터 더미에서 데이터를 삽입하는 연산을 push라 하고..