자료구조·알고리즘
개념을 읽고 문제에 적용하며 기초부터 이어가는 학습 경로입니다. 길잡이도 이 경로에 포함됩니다.
자료구조·코딩테스트 함께 공부하기
개념을 읽고 대응 문제를 풀며 기초부터 이어갑니다. 원래 과정의 순서와 읽음 기록은 위의 개념·문제 목록에서 그대로 사용할 수 있습니다.
공개 111편 · 자료구조 23편 · 문제 57편 · 알고리즘 개념 30편 · 길잡이 1편
전체 추천 경로와 단계 목표 보기 (13단계)
준비와 기초 구현 14편
입력·반환값을 구분하고 조건을 통과한 값으로 합·개수·최솟값을 갱신합니다.
- 길잡이 코딩테스트 자료구조 로드맵: 배열, 해시, 스택, 투 포인터 순서
- 알고리즘 개념 기초 구현 패턴: 조건·정수 계산·순회·상태 갱신
- 자료구조 개념 JavaScript 배열: 인덱스 조회와 삽입·삭제 비용
- 문제 세 수 중 최솟값 조건문 풀이 정리
- 문제 삼각형 판별하기 풀이
- 문제 연필 개수 풀이
- 문제 1부터 N까지 합 출력하기 풀이
- 문제 최솟값 구하기 풀이|배열 순회와 비교 갱신 원리
- 문제 홀수 풀이: 조건 판별과 결과 처리 정리
- 문제 10부제 풀이: 끝자리 비교로 위반 차량 수 세기
- 문제 큰 수 출력하기 풀이
- 문제 보이는 학생 풀이
- 문제 가위바위보 풀이
- 문제 점수계산 풀이
단계 확인: 직전 값과 지금까지의 최댓값을 구분하고, 초기값과 갱신 순서를 손으로 추적하세요.
문자열 기초 10편
문자 순회·판별·변환·인덱스와 최초 등장 위치를 익힙니다.
- 알고리즘 개념 문자열 알고리즘 기초: 순회·문자 판별·대소문자 변환·숫자 추출
- 문제 A를 #으로 풀이: 문자열 순회와 치환
- 문제 문자 찾기 풀이: 문자열 순회로 개수 세기
- 문제 대문자 찾기 풀이
- 문제 대문자로 통일 풀이
- 문제 대소문자 변환 풀이
- 문제 가장 긴 문자열 풀이
- 문제 가운데 문자 출력 풀이
- 문제 중복문자제거 풀이
- 문제 중복단어제거 풀이
단계 확인: 같은 문자·찾는 문자 없음·홀짝 길이를 확인하고 결과의 등장 순서를 설명하세요.
문자열 응용 7편
전처리·회문·양방향 스캔·연속 문자 묶기를 기본 순회에 연결합니다.
- 알고리즘 개념 투 포인터의 이동 기준: 양끝 비교와 정렬 배열 병합
- 문제 회문 문자열 풀이: 양끝 비교로 대소문자 없이 판별하기
- 문제 유효한 팰린드롬 풀이: 알파벳만 남겨 회문을 판별하는 방법
- 문제 숫자만 추출 풀이: 문자 사이의 숫자를 순서대로 수로 만들기
- 알고리즘 개념 양방향 스캔: 왼쪽·오른쪽 상태로 가장 가까운 문자 찾기
- 문제 가장 짧은 문자거리 풀이: 양방향 탐색으로 최소거리 구하기
- 문제 문자열 압축 풀이: 연속한 문자만 횟수로 묶는 방법
단계 확인: 전처리할 문자와 비교할 문자를 구분하고 마지막 문자·마지막 묶음을 확인하세요.
완전탐색과 격자 7편
서로 다른 후보를 빠짐없이 고르고 행·열·이웃의 경계를 구분합니다.
- 문제 자릿수의 합: 동률이면 더 큰 수 고르기
- 알고리즘 개념 완전탐색과 쌍 비교: 중복 없는 후보 열거와 순위 계산
- 문제 일곱 난쟁이 풀이: 두 명을 제외하는 완전탐색
- 문제 등수구하기 풀이
- 알고리즘 개념 2차원 배열 탐색: 행·열·대각선과 상하좌우 경계
- 문제 격자판 최대합 풀이: 행·열·대각선 합을 어떻게 비교할까요?
- 문제 봉우리 풀이: 상하좌우 비교로 개수를 어떻게 셀까요?
단계 확인: 같은 쌍을 두 번 세지 않는 이유와 모서리·대각선의 좌표를 설명하세요.
재귀와 호출·복귀 3편
기저 조건과 작아지는 입력을 정하고 호출과 반환 순서를 추적합니다.
- 알고리즘 개념 재귀의 종료 조건: 작은 문제와 기저 조건으로 거듭제곱 계산하기
- 알고리즘 개념 재귀적으로 생각하기: 배열 합의 호출과 복귀를 따라가기
- 알고리즘 개념 하노이의 탑: 큰 원판 하나를 옮기기 위한 재귀적 순서
단계 확인: 기저 조건에 도달하는 이유와 호출 뒤 돌아와 처리하는 작업을 작은 입력으로 설명하세요.
자료구조 개념과 문제 17편
저장할 상태와 필요한 연산에 따라 구조를 고른 뒤 바로 문제에 적용합니다.
- 자료구조 개념 자료구조 선택 가이드: 연산 비용으로 배열·스택·큐·Set 고르기
- 자료구조 개념 JavaScript Map·Set: 값 조회와 중복 제거 실습
- 문제 코딩테스트 Map 풀이: 학급 회장 득표수 세기
- 자료구조 개념 JavaScript 문자열 해시 테이블 구현: 충돌 처리와 리사이즈, NFC 정규화
- 문제 해시 테이블 연습: 정규화 문자열 빈도와 등장 순서
- 자료구조 개념 자료구조 스택 쉽게 이해하기: push pop으로 문제 풀이 감 잡기
- 문제 코딩테스트 스택 풀이: 올바른 괄호 검증하기
- 문제 코딩테스트 스택 풀이: 괄호문자 제거하기
- 문제 코딩테스트 스택 풀이: 크레인 인형뽑기 처리법
- 문제 코딩테스트 스택 풀이: 후위식 연산 계산하기
- 문제 코딩테스트 스택 풀이: 쇠막대기 레이저 절단 개수 세기
- 자료구조 개념 큐와 FIFO: head 인덱스로 JavaScript 대기열 만들기
- 문제 코딩테스트 큐: 상담 창구 대기열 명령 처리
- 자료구조 개념 단방향 연결 리스트: head·tail 삽입과 삭제
- 문제 코딩테스트 연결 리스트: 재생 대기 목록 관리
- 자료구조 개념 JavaScript 원형 덱 구현: 양끝 삽입·삭제와 고정 용량 버퍼
- 문제 원형 덱 연습: 최근 기록 창과 되돌리기
단계 확인: 삽입·제거 전후의 상태를 그리고, 내장 도구를 쓰는 풀이와 직접 구현의 목적을 구분하세요.
정렬의 원리와 불변식 5편
비교·교환·이동과 분할·병합을 구분하고 정렬된 구간이 늘어나는 과정을 확인합니다.
- 알고리즘 개념 버블 정렬: 이웃 비교로 가장 큰 값을 뒤에 확정하기
- 알고리즘 개념 선택 정렬: 남은 구간의 최솟값으로 앞자리를 확정하기
- 알고리즘 개념 삽입 정렬: 정렬된 앞부분에 다음 값을 끼워 넣기
- 알고리즘 개념 병합 정렬: 작은 정렬 결과를 두 포인터로 합치기
- 알고리즘 개념 퀵 정렬: 첫 피벗의 자리를 확정하고 양쪽을 정렬하기
단계 확인: 중복 값과 이미 정렬된 입력을 확인하고 추가 공간과 최악 시간의 조건을 설명하세요.
구간과 탐색 8편
정렬 조건·창의 상태·탐색 구간을 근거로 반복 계산을 줄입니다.
- 문제 코딩테스트 투 포인터 풀이: 두 정렬 배열 합치기
- 문제 코딩테스트 투 포인터 풀이: 공통 원소 추출하기
- 알고리즘 개념 슬라이딩 윈도우: 고정 길이 합과 양수 배열의 가변 구간
- 문제 코딩테스트 슬라이딩 윈도우 풀이: 최대 매출 구간 합 계산하기
- 문제 투 포인터: 합이 M인 연속 부분수열 개수
- 문제 코딩테스트 해시 풀이: 모든 아나그램 찾기
- 알고리즘 개념 이진 탐색의 불변식: 탐색 구간·중간값·종료 조건
- 문제 이진 탐색 연습: 숫자 카드 존재 여부 확인
단계 확인: 포인터를 움직여도 답을 버리지 않는 이유와 양수·0·음수의 차이를 설명하세요.
동적 계획법의 두 계산 순서 2편
중복 부분 문제의 결과를 저장하고 메모이제이션과 타뷸레이션의 계산 순서를 비교합니다.
- 알고리즘 개념 DP 메모이제이션: 피보나치의 중복 호출 줄이기
- 알고리즘 개념 DP 타뷸레이션: 작은 답부터 테이블 채우기
단계 확인: 같은 부분 문제를 다시 계산하는 지점과 저장한 값을 재사용하는 지점을 구분하세요.
트리·그래프와 최단거리 14편
큐·트리·힙·그래프의 표현을 익히고 방문과 거리 완화를 구분합니다.
- 자료구조 개념 트리 자료구조 차이: 이진 트리 BST MST 구분하기
- 문제 트리 순회 연습: 깊이별 노드 묶기
- 자료구조 개념 JavaScript 이진 탐색 트리 구현: 중복 키와 세 가지 삭제 처리
- 문제 BST 연습: 닫힌 구간의 중복 키 보고서
- 자료구조 개념 JavaScript 최소 힙 구현: 우선순위 큐의 push·pop과 비교 함수
- 알고리즘 개념 제자리 힙 정렬: 배열 heapify와 확정 구간의 경계
- 문제 최소 힙 연습: 동률 순서를 지키는 작업 스케줄러
- 자료구조 개념 JavaScript 그래프 구현: 인접 리스트·인접 행렬 비교와 BFS
- 알고리즘 개념 그래프 DFS: 방문 표시로 순환을 멈추고 연결을 따라가기
- 알고리즘 개념 DFS와 BFS 비교: 깊이·대기열·최소 간선 수를 구분하기
- 문제 그래프 연습: 연결 구역 크기를 작은 순서로 출력하기
- 알고리즘 개념 다익스트라의 원리: 거리 완화와 오래된 후보 건너뛰기
- 문제 코딩테스트 고급: 최소 힙으로 다익스트라 최단 경로 구하기
- 알고리즘 개념 프림 알고리즘: 최소 신장 트리와 연결되지 않은 그래프 처리
단계 확인: 층별 방문 순서와 최솟값 추출을 추적하고, 다익스트라의 비음수 조건과 오래된 후보를 설명하세요.
그리디 선택과 반례 2편
당장의 선택을 반복하는 규칙을 세우고 최적해를 보장하는 조건과 반례를 비교합니다.
- 알고리즘 개념 탐욕 알고리즘: 큰 동전 선택과 반례로 확인하는 최적성
- 알고리즘 개념 인터벌 스케줄링: 가장 먼저 끝나는 일정을 고르는 이유
단계 확인: 동전 선택이 실패하는 입력과 종료 시각 기준 인터벌 선택의 교환 근거를 설명하세요.
심화 선택 실습 17편
연결 관리·접두사·갱신 구간·최근 사용·균형 검색 중 필요한 주제를 선택합니다.
- 자료구조 개념 JavaScript Union-Find: 경로 압축과 크기 합치기로 연결 상태 관리하기
- 문제 코딩테스트 Union-Find: 연결 성분 수와 크기 구하기
- 자료구조 개념 JavaScript Trie: Unicode 접두사 검색과 안전한 삭제 구현
- 자료구조 개념 Trie 자동완성: 접두사 아래 단어를 정해진 순서로 모으기
- 문제 코딩테스트 Trie: 접두사에 맞는 단어 수 세기
- 자료구조 개념 JavaScript Fenwick Tree: lowbit로 구간 합과 단일 증가 갱신 구현
- 문제 코딩테스트 Fenwick Tree: 값 갱신과 구간 합 처리
- 자료구조 개념 JavaScript 반복형 세그먼트 트리: 구간 합·단일 대입·결합 순서
- 문제 코딩테스트 세그먼트 트리: 단일 대입과 구간 합
- 자료구조 개념 JavaScript LRU 캐시: Map과 이중 연결 리스트의 불변식
- 문제 코딩테스트 LRU 캐시: 지도 타일 재사용 기록
- 자료구조 개념 JavaScript AVL 트리: 높이 불변식과 LL·RR·LR·RL 삽입 회전
- 자료구조 개념 AVL 트리 삭제: 높이 갱신과 연속 균형 복구
- 문제 코딩테스트 AVL 트리: 기준 이상 최솟값 찾기
- 자료구조 개념 Red-Black 트리 원리: 색과 검은 높이로 균형 읽기
- 자료구조 개념 Red-Black 트리 삽입: LLRB 회전과 색 변환
- 자료구조 개념 Red-Black 트리 삭제: LLRB 색 이동과 검은 높이 복구
단계 확인: 표본 하나에 더해 경계 입력과 작은 기준 풀이를 비교하고 왜 이 구조를 고르는지 설명하세요.
유량·상태 압축과 계산 복잡도 (선택) 5편
잔여 경로와 선택 집합을 표현하고 완전탐색·동적 계획법·검증의 비용을 비교합니다.
- 알고리즘 개념 포드 풀커슨 최대 유량: 잔여 용량과 역방향 간선으로 선택 수정하기
- 알고리즘 개념 비트마스킹 입문: 선택한 항목을 숫자에 기록하기
- 알고리즘 개념 외판원 문제: 모든 방문 순서를 비교하고 출발점으로 돌아오기
- 알고리즘 개념 외판원 DP: 현재 도시와 방문 집합을 함께 저장하기
- 알고리즘 개념 P와 NP: 답을 찾는 일과 확인하는 일의 차이
단계 확인: 작은 기준 풀이와 비교하고 경로 복원·역방향 취소·입력 크기에 따른 비용을 설명하세요.
현재 공개 범위는 기초 구현·문자열·자료구조·정렬·재귀·구간 탐색·그래프·그리디와 동적 계획법입니다. 균형 트리·최대 유량·상태 압축·외판원과 계산 복잡도는 필요한 주제부터 선택해서 읽습니다.
심화 선택 실습은 필요한 주제부터 고르세요. 이 경로의 완주는 현재 공개 범위의 학습이며 전체 코딩테스트 준비의 완료를 뜻하지 않습니다.