개발이야기(64)
-
자료구조 시리즈 10편
힙(Heap)과 우선순위 큐(Priority Queue) 완전 이해하기이전 글에서는 그래프(Graph)에 대해 알아봤습니다.이번에는 우선순위가 높은 데이터를 빠르게 꺼내는 자료구조, 힙(Heap) 과 우선순위 큐(Priority Queue) 를 자세히 정리해봅니다.1. 힙(Heap)이란?힙은 완전 이진 트리 형태를 가지면서 특정 규칙을 만족하는 자료구조입니다.완전 이진 트리: 모든 레벨이 꽉 차고, 마지막 레벨만 왼쪽부터 채워짐힙 조건:최소 힙(Min Heap): 부모 노드 ≤ 자식 노드최대 힙(Max Heap): 부모 노드 ≥ 자식 노드2. 힙의 특징항목 설명삽입 속도O(log n)삭제(최대/최소값 꺼내기) 속도O(log n)정렬된 순서 보장X (최대/최소만 빠르게 접근)사용 용도우선순위 큐, 정렬(H..
2025.04.22 -
자료구조 시리즈 9편
그래프(Graph) 완전 이해하기이전 글에서는 트리(Tree)에 대해 알아봤습니다.이번에는 복잡한 관계를 표현하는 자료구조, 그래프(Graph) 에 대해 자세히 정리해봅니다.1. 그래프란?그래프는 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조입니다.정점(Vertex): 데이터의 단위 (노드라고도 함)간선(Edge): 정점과 정점을 연결하는 선방향 그래프(Directed Graph)와 무방향 그래프(Undirected Graph)가 있음2. 그래프의 기본 용어용어 설명정점(Vertex)데이터를 저장하는 노드간선(Edge)두 정점을 연결하는 선인접(Adjacent)두 정점이 간선으로 직접 연결된 관계차수(Degree)정점에 연결된 간선의 수경로(Path)정점들을 순서대로 따라간 길사이클(Cycl..
2025.04.22 -
자료구조 시리즈 8편
트리(Tree) 완전 이해하기이전 글에서는 해시테이블(Hash Table)에 대해 알아봤습니다.이번에는 계층적 구조를 표현하는 자료구조, 트리(Tree) 에 대해 자세히 정리해봅니다.1. 트리란?트리는 노드(Node)들이 부모-자식 관계로 연결된 비선형 자료구조입니다.하나의 루트(Root) 노드에서 시작부모 노드에서 여러 자식 노드로 갈라지는 구조순환(Cycle)이 없는 연결 구조2. 트리의 기본 용어용어 설명루트(Root)트리의 시작 노드부모(Parent)다른 노드를 가리키는 노드자식(Child)부모에게 연결된 노드리프(Leaf)자식이 없는 노드 (끝 노드)깊이(Depth)루트부터 해당 노드까지의 거리높이(Height)트리에서 가장 긴 경로의 길이3. 트리의 종류종류 설명이진 트리(Binary Tree..
2025.04.22 -
자료구조 시리즈 7편
해시테이블(Hash Table) 완전 이해하기이전 글에서는 연결 리스트(Linked List)에 대해 알아봤습니다.이번에는 키(Key)와 값(Value) 쌍으로 데이터를 저장하는 해시테이블(Hash Table) 에 대해 자세히 정리해봅니다.1. 해시테이블이란?해시테이블은 데이터를 (키, 값) 쌍으로 저장하고, 키를 통해 값을 빠르게 검색할 수 있는 자료구조입니다.키를 해시 함수(Hash Function)를 통해 인덱스로 변환하여 저장검색, 삽입, 삭제 모두 평균적으로 매우 빠름 (O(1))2. 해시테이블의 특징항목 설명접근 속도평균 O(1) (매우 빠름)키 중복 여부키는 고유해야 함 (같은 키 존재 불가)충돌 처리체이닝(연결 리스트), 오픈 어드레싱 방식 등 사용메모리 사용배열보다 크지만 빠른 접근성 제..
2025.04.22 -
자료구조 시리즈 6편
연결 리스트(Linked List) 완전 이해하기이전 글에서는 큐(Queue)에 대해 알아봤습니다.이번에는 노드(Node)들이 포인터로 연결된 구조인 연결 리스트(Linked List) 를 자세히 정리해봅니다. 1. 연결 리스트란?연결 리스트는 각 노드가 데이터와 다음 노드에 대한 포인터를 함께 저장하는 자료구조입니다.동적 크기 조정 가능삽입과 삭제가 빠름 (특히 중간 삽입/삭제)메모리에 연속적으로 저장될 필요가 없음2. 연결 리스트의 특징항목 설명삽입/삭제빠름 (O(1) - 위치만 알면)접근느림 (O(n) - 처음부터 순회 필요)메모리 사용포인터 공간 추가 필요크기 조정동적 크기 조정 가능3. 연결 리스트 종류종류 설명단일 연결 리스트(Singly Linked List)한 방향(다음 노드만)으로 연결이..
2025.04.21 -
자료구조 시리즈 5편
큐(Queue) 완전 이해하기이전 글에서는 스택(Stack)에 대해 알아봤습니다.이번에는 선입선출(FIFO) 구조를 가지는 큐(Queue) 에 대해 자세히 정리해봅니다.1. 큐란?큐는 먼저 넣은 데이터가 먼저 나오는 자료구조입니다. (FIFO: First-In, First-Out)가장 먼저 추가된 데이터가 가장 먼저 제거됨주로 작업 대기열, 프린터 작업 처리 등에 사용2. 큐의 특징항목 설명삽입(Enqueue)뒤쪽(Rear)으로 추가삭제(Dequeue)앞쪽(Front)에서 제거조회(Peek)가장 앞 요소만 확인 (제거는 안 함)크기 제한있을 수도 있고 없을 수도 있음3. 큐 사용 예시 (C# 기준) Queue 선언과 초기화using System.Collections.Generic;// 빈 큐 생성Queu..
2025.04.21