Skip to content
Beside the Wheel
Search
Ctrl
K
Cancel
Email
GitHub
Select theme
Dark
Light
Auto
공부
(5)
spot 인스턴스에서 서버 가용성 개선하기
eBPF로 서버 성능 Profiling하는 법: Pyroscope의 구현 살펴보기
정수론부터 RSA까지
strace로 shaka-packager 버그 추적
Kubernetes The Hard Way
TIL
(956)
AI
(43)
DevOps
(230)
Network
(61)
OS
(155)
개발
(113)
데이터베이스
(64)
서버
(72)
수학
(20)
알고리즘
(24)
암호학
(32)
언어
(113)
컴퓨터구조
(5)
코드
(24)
독후감
(43)
과학
(1)
사회
(2)
산문
(3)
소설
(12)
인문
(11)
자기계발
(7)
철학
(7)
생각
(6)
고민
변화에 대하여
의식의 영역에 대하여
본질을 보려면
짧은 생각들
소유냐 존재냐
회고
(14)
2022.03-04 대덕소마고 입학소감/다짐
2022.05-08 프로젝트와 인간관계
2022.09-2023.02 불안과 판단
2023.03-07 DMS 리더 회고
2023.08-11 나는 누구인가?
2023.12 더 많은 걸 배우기 위한 경험
2024.01-02 회사 인턴 회고
2024.03-04 고3 근황
2024.05-07 고등학교 마무리
2024.08-12 첫 회사
2025.01-03 입출력
2025.03-08 효능감이란 무엇일까
2025.09-12 연말회고
2026.01-08 담론
Email
GitHub
Select theme
Dark
Light
Auto
태그: 자료구조
총 5개의 글이 있습니다.
KD-tree
자료구조
2026. 3. 19.
정렬된 배열에서 특정 값을 찾을 때, 전부 다 순회할 때의 시간 복잡도는 `O(n)`이다. 하지만 배열이 정렬되어 있다는 사실을 이용하면, 중간값과 비교해서 절반을 날릴 수 있다. 이것이 이진 탐색이고, `O(log n)` 시간 복잡도를 가진다. 정렬된 배열에서 쿼리 값 q에 가장 가까운 원소를 찾는 최근접 이웃(nearest neighbor) 탐색도 같은 원리이다. brute force로 하면 모든 원소와의 거리를 계산해야 하니 `O(n)`이다. 하지만 배열이 정렬되어 있으면, q가 배열에서 어디쯤 들어갈지를 이진 탐색으로 `O(log n)`에 찾을 수 있다. q가 들어갈 위치를 찾았으면, 가장 가까운 원소는 그 위치의 바로 왼쪽 아니면 오른쪽에 있다. 이 문제는 1차원에 해당한다. 하지만 2차원 평면
펜윅트리
자료구조
2026. 3. 14.
펜윅트리(Binary Indexed Tree, BIT)는 세그먼트트리와 같이 구간합을 구하고 값을 갱신하는 자료구조이다. 세그먼트트리보다 구현이 간단하고 메모리를 적게 사용한다. 각 인덱스가 담당하는 구간을 이진수의 마지막 1 비트(LSB) 를 이용해 결정한다. 인덱스 `i`가 담당하는 구간의 길이는 `i & -i`(lowest set bit)이다. 인덱스(이진) 담당 구간 1 (0001) → [1, 1] 길이 1 2 (0010) → [1, 2] 길이 2 3 (0011) → [3, 3] 길이 1 4 (0100) → [1, 4] 길이 4 5 (0101) → [5, 5] 길이 1 6 (0110) → [5, 6] 길이 2 7 (
LSM Tree
자료구조
2024. 7. 28.
LSM 트리는 로그파일 기반으로 작성되는 방식의 파일 구조이다. LSM 트리는 Append-only 방법이어서 쓰기작업의 효울성이 좋다. 작동 방식 쓰기 작업 LSM 트리는 데이터를 disk에 바로 쓰지 않고, 정렬된 메모리 테이블(memTable)과 로그파일에 먼저 쓴다. 메모리 테이블은 주로 레드-블랙 트리를 사용하여 키-값 쌍을 기반으로 정렬된 구조를 유지한다. Memtable이 설정된 임계값에 도달하면, 그 내용은 디스크에 파일로 저장됩니다. 이때 데이터는 정렬된 상태로 저장되기 떄문에, 이 파일을 SSTable(Sorted String Table)이라고 부른다. SSTable은 불변성을 지니며, 한 번 기록된 후에는 변경되지 않는다. 이 구조는 데이터 일관성을 보장하며 압축이 진행
Trie
자료구조
2024. 7. 26.
트라이는 문자열을 저장하고 효율적으로 검색하기 위한 트리 기반의 자료구조이다. 트라이는 루트 노드부터 시작하고, 각 노드는 문자를 나타낸다. 그리고 문자열은 루트에서 리프 노드까지의 경로로 표현된다. 트라이 자료구조를 사용하면 문자열을 매우 빠르게 검색할 수 있다. 특히 접두사 검색에 효율적이다. (O(m) 시간, m은 문자열 길이). 큰 메모리가 필요하다는 단점이 있다. 접두사를 바탕으로 한 자동 완성이나, 문자열 매칭을 위해 사용할 수 있다. 구현 트라이의 한 노드를 구성하는 객체는 자손 노드를 가리키는 포인터 목록과, 문자열의 끝인지를 나타내는 bool 변수로 구성된다. 자손 노드 포인터를 저장하기 위해 맵이나 벡터를 사용할 수 있다. c struct Trie { map ch; //
세그먼트트리
자료구조
2024. 7. 26.
세그먼트트리로 구간합을 구하는 알고리즘이다. java public class boj2042{ static Scanner sc = new Scanner(System.in); static long[] Tree; static long[] arr; static int log2(int x,int base){ return (int) Math.ceil(Math.log10(x)/Math.log10(2)); } /* makeTree : 길이가 8인 배열이 있을때 (1-8의 구간합)