Data Structures

글 9개

무엇을 언제 고르나 - 그릇 고르기 한 장

CS · Data Structure

무엇을 언제 고르나 - 그릇 고르기 한 장

이 시리즈에서 연 그릇들을 한 장에 놓는다. 고르는 순서는 셋이고, 대부분의 문제는 그중 첫 질문에서 끝난다.

자료를 어떻게 담나 9편

그래프 - 관계 자체가 데이터다

CS · Data Structure

그래프 - 관계 자체가 데이터다

노선도에서 값은 역이 아니라 역 사이의 선에 있다. 방향과 가중치와 순환이 갈리는 자리, 그리고 왜 순환을 그렇게 찾아다니는지까지.

자료를 어떻게 담나 8편

힙과 우선순위 큐 - 제일 급한 것만 위로

CS · Data Structure

힙과 우선순위 큐 - 제일 급한 것만 위로

전부 줄 세우지 않고 꼭대기 하나만 약속한다. 덜 약속해서 싸지는 그릇이고, 이름이 같은 메모리의 힙과는 아무 관계가 없다.

자료를 어떻게 담나 7편

트리와 이진탐색트리 - 반씩 접어 들어간다

CS · Data Structure

트리와 이진탐색트리 - 반씩 접어 들어간다

스무고개가 백만 개를 스무 번에 줄이는 원리 그대로다. 다만 질문을 잘못 고르면 스무고개가 하나씩 세는 일이 된다.

자료를 어떻게 담나 6편

해시테이블 - 계산해서 자리를 정한다

CS · Data Structure

해시테이블 - 계산해서 자리를 정한다

찾지 않고 계산한다는 발상 하나로 O(1)이 나온다. 그 대신 충돌을 떠안고, 순서를 잃고, 가끔은 O(1)이 깨진다.

자료를 어떻게 담나 5편

스택과 큐 - 어느 쪽에서 꺼내나

CS · Data Structure

스택과 큐 - 어느 쪽에서 꺼내나

같은 더미인데 꺼내는 자리 하나만 바꿨다. 그 하나가 되돌리기와 작업 큐를 가르고, 스택 오버플로가 왜 나는지도 여기서 설명된다.

자료를 어떻게 담나 4편

배열과 연결리스트 - 자리를 미느냐 고리를 바꾸느냐

CS · Data Structure

배열과 연결리스트 - 자리를 미느냐 고리를 바꾸느냐

중간에 하나 끼워 넣을 때 한쪽은 뒤를 전부 밀고 한쪽은 고리 둘만 바꾼다. 그런데도 실무가 거의 배열을 쓰는 이유까지.

자료를 어떻게 담나 3편

빅오 - 몇 배로 늘어나나

CS · Data Structure

빅오 - 몇 배로 늘어나나

빅오는 어려운 수학이 아니라 늘어나는 모양에 붙인 이름이다. 사람이 두 배로 오면 무엇이 두 배가 되고 무엇이 네 배가 되는지로 읽는다.

자료를 어떻게 담나 2편

자료구조 - 담는 그릇이 속도를 정한다

CS · Data Structure

자료구조 - 담는 그릇이 속도를 정한다

자료구조는 빠른 것과 느린 것으로 나뉘지 않는다. 무엇을 싸게 하고 무엇을 비싸게 할지를 고르는 일이다. 그릇을 가르는 네 가지 질문부터 본다.

자료를 어떻게 담나 1편