처음 배우는 자료구조
연락처는 이름으로 찾고, 음악은 재생 순서대로 넘겨 듣습니다. 같은 데이터라도 하려는 일에 따라 담는 방법이 달라집니다. 이 강좌에서는 자료구조를 왜 쓰는지, 언제 고르면 좋은지를 배웁니다.
- 대상: 변수, 조건문, 반복문, 함수를 한 번 써 본 분. 자료구조는 처음이어도 괜찮습니다.
- 구성: 개념 설명, 작은 예제, 확인 문제와 해설. 모든 수업을 무료로 읽을 수 있습니다.
- 예제: Python 3 표준 기능만 사용합니다. 코드는 각 수업에서 처음부터 이어서 읽으면 됩니다.
- 목표: 배열, 스택, 큐, 트리, 그래프의 차이를 설명하고, 필요한 연산에 맞는 구조를 고릅니다.
처음이라면 목차 순서대로 읽으세요. 코드를 실행하기 전에 결과를 예상해 보고, 확인 문제의 해설은 직접 답한 뒤 펼쳐 보세요.
강좌 목차
- 01 자료구조와 연산 비용데이터를 담는 방법과 일을 처리하는 순서를 구분합니다.
- 02 배열과 참조번호로 바로 찾는 배열과 같은 객체를 가리키는 참조를 배웁니다.
- 03 스택과 되돌리기마지막에 넣은 것을 먼저 꺼내는 규칙으로 괄호를 검사합니다.
- 04 큐와 순서대로 처리하기먼저 온 요청부터 처리하는 큐와 양쪽 끝을 쓰는 덱을 구분합니다.
- 05 연결 리스트항목을 옮기는 대신 다음 항목으로 가는 연결을 바꿉니다.
- 06 원형과 이중 연결 리스트반복 재생과 앞뒤 이동에 맞게 연결을 바꿔 봅니다.
- 07 트리와 순회계층 관계를 나타내고 모든 노드를 방문하는 순서를 정합니다.
- 08 탐색 트리와 균형값의 크기로 갈 방향을 고르고 트리가 한쪽으로 기우는 문제를 봅니다.
- 09 힙과 우선순위가장 급한 일을 빠르게 꺼내는 우선순위 큐를 만듭니다.
- 10 그래프와 탐색복잡한 연결을 표현하고 BFS와 DFS로 길을 따라갑니다.
- 11 최단 경로와 최소 신장 트리빨리 이동하는 문제와 적은 비용으로 모두 연결하는 문제를 구분합니다.
- 12 먼저 해야 할 일을 정하는 위상 정렬작업의 선후 관계를 방향 그래프로 나타냅니다.
- 13 정렬과 기준 선택삽입 정렬을 따라가며 정렬 방식의 비용과 안정성을 비교합니다.
- 14 탐색과 해싱, 상황에 맞게 고르기이진 탐색과 해시 테이블을 비교하고 배운 구조를 골라 봅니다.