7. BFS (너비 우선 탐색)
개념 그래프에서 시작 정점으로부터 가까운 정점을 먼저 방문하는 탐색 알고리즘이다. 핵심 특징 레벨(거리) 순서로 탐색: 시작점에서 거리 1인 정점 → 거리 2인 정점 → … 큐(Queue) 사용: FIFO 특성으로 레벨 순서 보장 최단 경로 보장: 가중치가 없거나 모두 같은 그래프에서 동작 원리 그래프: 1 --- 2 -...
개념 그래프에서 시작 정점으로부터 가까운 정점을 먼저 방문하는 탐색 알고리즘이다. 핵심 특징 레벨(거리) 순서로 탐색: 시작점에서 거리 1인 정점 → 거리 2인 정점 → … 큐(Queue) 사용: FIFO 특성으로 레벨 순서 보장 최단 경로 보장: 가중치가 없거나 모두 같은 그래프에서 동작 원리 그래프: 1 --- 2 -...
개념 이진 탐색 트리(Binary Search Tree)는 다음 속성을 만족하는 이진 트리이다. 왼쪽 서브트리의 모든 노드 값 < 현재 노드 값 오른쪽 서브트리의 모든 노드 값 > 현재 노드 값 중복 값은 허용하지 않음 (또는 한쪽에 몰아서 처리) BST의 특징 특징 설명 ...
물리적 저장 구조 저장 장치 계층 속도 ↑ 용량 ↓ 비용 ↑ ┌──────────────────────────────────────┐ │ CPU 레지스터 / 캐시 │ ← 휘발성 ├──────────────────────────────────────┤ │ 메인 메모리 (...
개념 최적화 문제를 결정 문제(Yes/No)로 바꾸어 이진 탐색으로 해결하는 기법이다. 핵심 아이디어 최적화 문제: "조건을 만족하는 최댓값/최솟값을 구하라" ↓ 변환 결정 문제: "값이 X일 때 조건을 만족하는가?" (Yes/No) ↓ 이진 탐색으로 X의 범위를 좁혀감 적용 가능 조건 결...
개념 트리는 계층적 구조를 표현하는 비선형 자료구조이다. 하나의 루트 노드에서 시작하여 자식 노드들로 뻗어나가는 형태를 갖는다. 트리 용어 용어 설명 루트(Root) 트리의 최상위 노드 부모(Parent) 특정 노드의 상...
트랜잭션 (Transaction) 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 작업 단위이다. 하나 이상의 SQL 문으로 구성되며, 전부 수행되거나 전부 수행되지 않아야 한다 (All or Nothing). ACID 속성 1. 원자성 (Atomicity) - 트랜잭션의 연산은 전부 반영되거나 전부 취소 - 중간 상태는 없음...
개념 정렬된 배열에서 탐색 범위를 절반씩 줄여가며 원하는 값을 찾는 알고리즘이다. 핵심 아이디어 정렬된 배열: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 찾는 값: 11 1단계: mid = (0+9)/2 = 4, arr[4] = 9 < 11 → 오른쪽 탐색 [_, _, _, _, _, 11, 13, 15,...
개념 덱(Deque, Double-Ended Queue)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다. 스택과 큐의 특성을 모두 갖는다 앞(front)과 뒤(rear) 모두에서 삽입/삭제가 O(1) push_front, push_back, pop_front, pop_back 연산 지원 슬라이딩 윈도우 최솟값/최댓값, 회문 ...
SQL 개요 SQL(Structured Query Language)은 관계형 데이터베이스를 관리하고 조작하기 위한 표준 언어다. SQL 분류 1. DDL (Data Definition Language) - 데이터 정의 CREATE, ALTER, DROP, TRUNCATE 2. DML (Data Manipulation Language) - ...
개념 비교 기반이 아닌 O(N) 시간의 정렬 알고리즘들이다. 비교 기반 vs 비비교 기반 분류 하한 원리 제약 비교 기반 Ω(N log N) 원소 간 대소 비교 없음 비비교 기반 ...