본문 바로가기

전체 글48

힙(Heap)과 우선순위 큐: 응급실 트리아제 시스템의 원리 우리가 앞서 배운 큐(Queue)는 '선착순(FIFO)'이라는 아주 공평한 규칙을 가지고 있었습니다. 먼저 온 사람이 먼저 서비스를 받는 것이죠. 하지만 현실 세계, 특히 생사가 오가는 응급실에서는 이 규칙이 적용되지 않습니다. 감기로 아침 9시에 온 환자보다, 심정지로 10시에 실려 온 환자가 먼저 치료를 받아야 합니다. 이처럼 데이터에 '중요도(Priority)'를 매겨서, 순서와 상관없이 중요한 것부터 먼저 처리하는 자료구조가 바로 우선순위 큐(Priority Queue)이며, 이를 구현하는 가장 효율적인 도구가 힙(Heap)입니다.1. 힙(Heap)이란 무엇인가?힙은 완전 이진 트리(Complete Binary Tree) 형태를 띤 자료구조입니다. '무더기'라는 뜻처럼 데이터를 차곡차곡 쌓아 올리.. 2026. 2. 16.
이진 트리 vs 이진 탐색 트리(BST): 탐색 효율을 극대화하는 비결 트리 자료구조를 공부하다 보면 가장 많이 마주치는 단어가 '이진 트리(Binary Tree)'입니다. 그런데 곧이어 '이진 탐색 트리(Binary Search Tree, BST)'라는, 이름이 묘하게 비슷한 개념이 등장합니다. 많은 초보자가 "그냥 둘 다 똑같은 트리 아니야?"라고 생각하고 넘어가지만, 이 둘은 '단순한 저장'과 '효율적 검색'이라는 목적의 차이만큼이나 큰 성능 차이를 보입니다. 오늘은 이진 트리의 형태에 '규칙'을 하나 더해 탐색 속도를 빛의 속도로 만든 BST의 비밀을 파헤쳐 보겠습니다.1. 이진 트리 (Binary Tree): 형태의 제약이진 트리는 트리의 '모양(Shape)'을 정의하는 용어입니다. 규칙은 아주 간단합니다. "모든 부모 노드는 최대 2개의 자식(왼쪽, 오른쪽)만 가.. 2026. 2. 15.
트리(Tree) 구조 완전 정복: 가계도로 배우는 루트와 노드의 관계 지금까지 배운 배열, 스택, 큐는 데이터가 한 줄로 나란히 서 있는 '선형(Linear)' 구조였습니다. 하지만 현실 세계의 데이터는 이렇게 단순하지 않습니다. 여러분의 컴퓨터 폴더 구조, 회사의 조직도, 웹사이트의 HTML 구조, 그리고 가족 관계까지. 이들은 모두 계층(Hierarchy)을 가지고 뻗어 나가는 형태입니다. 이러한 계층적 데이터를 컴퓨터로 표현하기 위해 고안된 자료구조가 바로 트리(Tree)입니다. 오늘은 트리의 난해한 용어들을 우리가 흔히 보는 '가계도(족보)'에 빗대어 아주 쉽게 정복해 보겠습니다.1. 트리(Tree)란 무엇인가?트리는 노드(Node)들이 간선(Edge)으로 연결된 비선형 자료구조입니다. 이름이 '나무'인 이유는, 데이터를 그려놓고 보면 나무를 거꾸로 뒤집어 놓은 모.. 2026. 2. 14.
스택 vs 큐, 헷갈리지 말자! 한눈에 보는 특징과 실무 활용 사례 자료구조의 양대 산맥인 스택(Stack)과 큐(Queue)는 생김새는 비슷해 보이지만, 정반대의 성격을 가진 이란성 쌍둥이와 같습니다. 개발자 면접에서 "스택과 큐의 차이점을 설명하세요"라는 질문이 단골로 나오는 이유는, 이 두 구조의 차이를 이해하는 것이 곧 '데이터의 흐름(Flow)'을 제어하는 능력과 직결되기 때문입니다. 단순히 LIFO와 FIFO라는 용어의 차이를 넘어, 실제 현업 시스템 아키텍처에서 어떤 상황에 스택을 쓰고 어떤 상황에 큐를 써야 하는지, 그 결정적 기준과 활용 사례를 완벽하게 정리해 드립니다.1. 구조적 차이점: 막힌 골목 vs 뚫린 터널가장 먼저 시각적인 구조의 차이를 명확히 해야 합니다. 데이터가 들어오고 나가는 '문(Gate)'이 몇 개인지, 어디에 달려 있는지가 핵심입니.. 2026. 2. 13.
큐(Queue)와 FIFO: 맛집 줄서기로 이해하는 선입선출의 원리 스택이 '프링글스 통'이라면, 큐(Queue)는 우리가 매일 겪는 '줄 서기'입니다. 유명한 맛집 앞에 길게 늘어선 줄, 출근길 버스를 타기 위해 기다리는 줄을 생각해 보세요. 새치기가 없다면, 가장 먼저 온 사람이 가장 먼저 식당에 들어가고 버스에 탑승합니다. 이 공평하고 상식적인 원리가 바로 큐의 핵심인 FIFO(First In, First Out)입니다. 컴퓨터 시스템이 수많은 작업을 꼬이지 않고 순서대로 처리할 수 있는 비결, 큐에 대해 파헤쳐 봅니다.1. 큐의 대원칙: 선입선출 (FIFO)큐는 스택과 달리 양쪽이 뚫려 있는 터널과 같습니다. - 입구 (Rear): 데이터가 들어가는 곳입니다. 줄의 맨 뒤에 서는 것과 같습니다 (Enqueue). - 출구 (Front): 데이터가 나가는 곳입니다... 2026. 2. 12.
스택(Stack)과 LIFO: 프링글스 통에서 배우는 데이터의 흐름 개발자 면접이나 전공 시험에서 가장 단골로 등장하는 자료구조 중 하나가 바로 스택(Stack)입니다. 이름부터가 '무더기', '쌓아 올리다'라는 뜻을 가진 스택은 컴퓨터의 동작 원리를 이해하는 데 있어 필수적인 개념입니다. 복잡한 수식이나 코드로 배우기 전에, 편의점에 가면 흔히 볼 수 있는 '프링글스 감자칩'을 떠올려 보세요. 스택의 모든 원리가 그 통 안에 담겨 있습니다.1. 스택의 대원칙: 후입선출 (LIFO)스택을 정의하는 단 하나의 규칙은 LIFO(Last In, First Out)입니다. 우리말로는 '후입선출', 즉 "가장 나중에 들어온 것이 가장 먼저 나간다"는 뜻입니다.1-1. 프링글스 통의 비유프링글스 통은 바닥이 막혀 있고 입구는 위쪽 하나뿐입니다. 1. Push (넣기): 공장에서 감.. 2026. 2. 11.