이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → 알고리즘 — 문제 해결의 체계적 접근 → 알고리즘 — 문제 해결의 체계적 접근 → 문제 해결
Comprehensive algorithm design: problem type identification, time estimation, contest strategy, debugging, and practical approaches.
알고리즘 설계 종합 전략 가이드를 시작할게요.
코딩 테스트에서 가장 중요한 건 문제를 보고 어떤 알고리즘을 쓸지 빠르게 결정하는 능력이에요.
다이어그램 가운데를 보시면, 문제 분석이라는 허브에서 7가지 유형으로 뻗어나가고 있어요.
왼쪽부터 차례로 볼게요. 정렬과 탐색은 O(n log n)이 기본이고, 이진 탐색은 O(log n)이에요.
그래프 문제는 {BFS→비에프에스}와 {DFS→디에프에스}가 핵심이고 시간은 O(V+E)예요.
{DP→디피}는 최적 부분 구조와 중복 부분 문제가 동시에 있을 때 사용하는 방법이에요.
다이어그램 가운데 초록 박스를 보면, {greedy→그리디}는 지역 최적이 곧 전역 최적인 경우에만 쓸 수 있어요.
분할 정복은 보라색 박스인데, 문제를 반으로 나눠서 독립적으로 해결한 뒤 합치는 방식이에요.
{backtracking→백트래킹}은 모든 경우를 탐색하되 가지치기로 효율을 높이는 전략이에요.
수학은 GCD, 소수, 모듈러 연산처럼 수학적 지식이 핵심인 문제 유형이에요.
아래쪽 실전 문제 풀이 4단계를 보세요. 입력 크기 확인, 키워드 분석, 알고리즘 선택, 구현과 검증 순서예요.
이 순서를 항상 지키면 문제를 체계적으로 접근할 수 있어서 실수가 줄어들어요.
하단 바 차트를 보시면, 코딩 테스트에서 {DP→디피}가 약 30%로 가장 많이 출제돼요.
그래프가 20%, 구현이 15%로 이 세 가지만 확실히 해도 전체의 65%를 커버할 수 있어요.
나머지 {greedy→그리디} 12%, 정렬 10%, 기타 13%도 무시할 수 없지만 우선순위를 정하는 게 중요해요.
각 유형의 키워드를 외워두면 문제를 읽자마자 어떤 유형인지 5초 안에 판단할 수 있어요.
예를 들어 "최솟값"이 나오면 {DP→디피}, "모든 경우"가 나오면 {backtracking→백트래킹}을 먼저 떠올려 보세요.
이렇게 유형별 전략을 체계적으로 정리해두면 코딩 테스트에서 당황하지 않을 수 있어요.
다음 블록에서는 키워드 기반으로 문제 유형을 정확히 판별하는 방법을 자세히 알아볼게요.
핵심은 '문제를 보면 유형이 보인다'는 수준까지 연습하는 거예요. 화이팅!
선생님: 알고리즘 7가지 유형을 정리했는데, 궁금한 점 있나요?
학생: 선생님, 7가지를 다 외워야 하나요? 너무 많은 것 같아요.
선생님: 다 외울 필요 없어요. 가장 빈출인 {DP→디피}, 그래프, 구현 3개만 확실히 해도 65%를 커버할 수 있어요.
학생: 아, 그러면 나머지는 필요할 때 배우면 되는 건가요?
선생님: 맞아요. 핵심 3개를 먼저 마스터하고, 나머지는 문제를 풀다가 필요해지면 배우세요.
학생: 문제를 보면 어떤 유형인지 어떻게 빨리 알 수 있어요?
선생님: 키워드를 보는 거예요. "최솟값"이면 {DP→디피}, "연결"이면 그래프, "모든 경우"면 {backtracking→백트래킹}이에요. 다음 블록에서 자세히 배울게요.