본문으로 건너뛰기

자료구조 · 알고리즘 기초집 전체 커리큘럼

24-LESSON CURRICULUM전체 강의 공개

자료구조 · 알고리즘 전체 커리큘럼

게임 기록을 저장하고 찾고 정렬하는 작은 문제에서 시작해 상위 랭킹과 스테이지 그래프를 처리하는 통합 프로그램까지 확장합니다.

강의 수24강
난이도초급 → 중급 입문
최종 결과물게임 기록 분석·랭킹 알고리즘 프로그램
주제핵심 결과
01자료구조와 알고리즘의 역할: 왜 문제 해결 방식이 중요할까?문제를 입력·출력·제약·반복 연산으로 나눈 뒤 자료구조와 알고리즘을 선택합니다. 빠른 구조가 항상 최선은 아니며 정확성, 메모리, 구현 복잡도까지 함께 판단합니다.
02시간 복잡도와 공간 복잡도: Big-O를 읽는 법Big-O는 하드웨어와 독립적으로 증가율을 비교하는 도구입니다. 최선·평균·최악 시간과 보조 공간을 구분하고, 실제 성능 측정은 별도의 검증으로 다룹니다.
03배열과 ArrayList: 순서가 있는 게임 기록 관리고정 크기와 원시 값에는 배열이 단순하고, 동적으로 늘어나는 순서 자료에는 ArrayList가 편리합니다. 빠른 인덱스 접근과 느린 중간 변경이라는 배열 기반 특성을 함께 기억합니다.
04문자열과 문자 배열: 텍스트 데이터를 효율적으로 다루기String은 안전한 불변 텍스트이고, 반복 조립에는 StringBuilder가 적합합니다. 문자 표현 범위를 확인하고 한 번의 순회로 검증·변환하는 흐름을 설계합니다.
05연결 리스트: 노드로 데이터를 연결하는 원리연결 리스트는 노드 참조를 바꿔 자료를 연결합니다. 위치를 이미 알면 변경이 빠르지만 임의 접근과 탐색은 느리며, 구조 선택에는 실제 접근 패턴이 중요합니다.
06스택: 실행 취소와 괄호 검증 문제스택은 가장 최근 작업을 먼저 처리하는 문제에 맞습니다. ArrayDeque의 한쪽 끝을 일관되게 사용하고 빈 상태를 확인하면 실행 취소와 중첩 검사를 안전하게 구현할 수 있습니다.
07큐와 덱: 대기열과 작업 순서 관리큐는 도착 순서 처리, 덱은 양쪽 끝 제어에 적합합니다. 메서드의 실패 계약을 구분하고 공정성 정책까지 함께 설계합니다.
08해시와 HashMap: 플레이어 기록을 빠르게 찾기HashMap은 키 기반 반복 조회를 빠르게 만드는 색인입니다. 평균 성능과 순서 미보장, equals·hashCode 계약, 추가 메모리를 함께 고려합니다.
09Set과 중복 제거: 고유 플레이어·아이템 관리Set은 고유성 자체가 문제의 핵심일 때 사용합니다. 중복 기준과 순서 요구를 먼저 정하고, HashSet의 평균 성능을 최악 보장으로 오해하지 않습니다.
10정렬 기초: 비교 정렬과 Comparator 사용법Comparator로 도메인 정렬 규칙과 동점 정책을 명시합니다. 원본 보존 여부, 안정성, overflow, O(n log n) 비용을 함께 검토합니다.
11버블·선택·삽입 정렬: 느리지만 중요한 기본 원리기본 정렬은 비교·이동·불변식을 눈으로 확인하기 좋습니다. 상황별 복잡도를 구분하되 큰 일반 입력에는 검증된 표준 정렬을 사용합니다.
12병합 정렬과 분할 정복: 큰 문제를 나누어 정렬하기병합 정렬은 균형 분할과 선형 병합으로 모든 상황 O(n log n)을 달성합니다. 대신 O(n) 보조 공간과 정확한 구간 경계 관리가 필요합니다.
13퀵 정렬과 피벗: 평균 성능과 최악 상황 이해하기퀵 정렬은 피벗 분할이 균형이면 빠르고 메모리 지역성이 좋지만 최악 O(n²)이 가능합니다. 평균과 최악, 재귀 스택, 안정성을 분리해 평가합니다.
14이진 탐색: 정렬된 데이터에서 빠르게 찾기이진 탐색은 정렬된 데이터의 반복 조회에 강합니다. 구간 불변식과 중복 정책을 명시하고, 정렬 비용까지 전체 해법 복잡도에 포함합니다.
15재귀 함수: 종료 조건과 호출 흐름 이해하기재귀는 자기 유사 구조를 자연스럽게 표현하지만 종료 조건과 호출 깊이를 관리해야 합니다. 시간뿐 아니라 호출 스택 공간을 포함해 반복 방식과 비교합니다.
16트리 기초: 계층 구조와 순회 방법트리는 계층 관계를 표현하고 순회는 모든 노드를 체계적으로 방문합니다. 순서의 의미와 트리 높이에 따른 호출 스택 비용을 함께 이해합니다.
17이진 탐색 트리: 삽입·검색·삭제의 원리BST는 순서 불변식으로 탐색 범위를 줄이지만 성능은 높이에 달려 있습니다. 중복·삭제 정책과 균형 여부를 명시해야 합니다.
18우선순위 큐와 힙: 최고 점수 랭킹을 효율적으로 관리하기우선순위 큐는 다음 최고 우선순위를 빠르게 처리합니다. 상위 K 문제는 K 크기 최소 힙으로 전체 정렬을 피할 수 있으며 결과 출력 순서는 별도 정렬합니다.
19그래프 기초: 정점·간선·인접 리스트 표현그래프는 임의의 연결과 순환을 표현합니다. 희소한 스테이지 맵은 인접 리스트가 자연스럽고, 방향·중복·외부 변경 정책을 명시해야 합니다.
20BFS와 DFS: 맵 탐색과 연결 요소 찾기BFS는 가까운 순서, DFS는 깊은 경로 우선 탐색입니다. 순환 그래프에서는 방문 집합이 필수이며 인접 리스트 전체 탐색은 O(V+E)입니다.
21그리디 알고리즘: 지금의 최선이 전체 해가 되는 조건그리디는 지역 선택을 되돌리지 않으므로 선택의 안전성을 증명해야 합니다. 목적 함수가 바뀌면 규칙도 다시 검증하며 정렬 비용을 전체 복잡도에 포함합니다.
22동적 계획법 기초: 중복 계산을 줄이는 방법동적 계획법은 상태·점화식·초기값·계산 순서를 설계해 중복 계산을 없앱니다. 저장해야 할 이전 상태 범위를 확인하면 공간도 줄일 수 있습니다.
23문제 풀이 설계법: 입력·제약·예외·복잡도 점검좋은 풀이는 문제를 명확히 정의하고 기준 해법, 경계 테스트, 전체 복잡도 순서로 설계합니다. 측정은 환경 의존 증거이며 자료구조 선택 근거와 함께 사용합니다.
24최종 실습: 게임 기록 분석·랭킹 알고리즘 프로그램 완성하기최종 프로그램은 요구별로 ArrayList, HashMap, 정렬·이진 탐색, 최소 힙, 인접 리스트·BFS를 조합합니다. 각 구조의 갱신 책임과 전체 호출 복잡도, 경계 테스트를 함께 관리해야 합니다.