Recent posts

[C++] STL vector

Posted Updated

STL C++ STL(Standard Template Library)은 자료구조와 알고리즘을 C++의 템플릿 형태로 제공하는 표준 라이브러리로, 효율적이고 재사용 가능한 코드를 작성할 수 있도록 돕는다. STL은 크게 컨테이너(Container), 반복자(Iterator), 알고리즘(Algorithm)으로 구성되어 있으며, 이 중에서 컨테이너는 데이터를 저장하고 관리하는 역할을 한다. vector C++ STL의 vector는 동적 배열(dynamic array)을 구현한 컨테이너로, 가장 널리 사용되는 STL 컨테이너...

[데이터베이스] B+Tree 인덱스

Posted Updated

[데이터베이스] DB에서 인덱스는 왜 필요할까? 앞선 해시 인덱스는 O(1)의 빠른 검색이 가능하지만, 다음과 같은 한계 가 있었다. 정렬이 안 되어 있어서 범위 검색(Range Query) 불가 <, >, BETWEEN 같은 조건에서 활용 어려움 ORDER BY , GROUP BY 등에 사용 불가 이 한계를 극복하는 인덱스 구조가 바로 B+Tree 인덱스 이다. B+Tree...

[데이터베이스] DB에서 인덱스는 왜 필요할까?

Posted Updated

인덱스란? 데이터베이스에서 인덱스(Index) 는 책의 목차처럼, 원하는 데이터를 더 빠르게 조회 하기 위한 자료 구조이다. 테이블에 있는 데이터를 모두 훑어보는 Full Table Scan을 줄이고, 필요한 데이터의 위치를 빠르게 찾도록 도와준다. 👉 결국 “빠른 검색” 이 인덱스의 목적! 인덱스가 없다면 어떤 문제가 생길까? 예를 들어, 5천만 명의 사용자 중에서 이름이 “철수”인...

[C++] sort()의 비교 함수자 제대로 알기 - 오름차순 vs 내림차순

Posted Updated

문제 소개 https://www.acmicpc.net/problem/1427 숫자의 각 자릿수를 내림차순으로 정렬 하는 문제를 풀다가 greater<T>()에 대해 자세히 알아보게 되었다. 위 문제는 예를 들어 입력값이 2143이라면, 각 자릿수 '2', '1', '4', '3'을 내림차순으로 정렬해 4321로 출력하는 문제다. 문자열로 변환한 뒤 sort() 함수의 3번째 인자로 greater<char>()를 함께 넘기면 된다는 것을 알게 되었지만, 왜 그렇게 동작하는지...

[알고리즘] 최소 신장 트리(Minimum Spanning Tree)

Posted Updated

이번 포스팅에서는 최소 신장 트리(Minimum Spanning Tree) 에 대해 다루려고 한다. 최소 신장 트리는 그리디 알고리즘(Greedy Algorithm) 을 기반으로 동작한다. 그리디 알고리즘이 생소하다면 지난 포스팅을 보고 오면 흐름을 더 잘 이해할 수 있다. 👉 [알고리즘] 그리디 알고리즘(Greedy Algorithm) - 거스름돈 문제로 이해하기 그리디 알고리즘과 최소 신장 트리 최소 신장 트리를...