코딩 테스트 합격자들이 선택한 ‘Introduction to Algorithms 3rd edition’ 답지 활용법

2026-05-28 · Uncategorized · 읽는데 18분

코딩 테스트 합격자들이 선택한 ‘Introduction to Algorithms 3rd edition’ 답지 활용법

썸네일

CLRS라는 별명이 왜 무서운 건지

알고리즘 공부를 시작한 지 3년차가 되던 해, 나는 드디어 CLRS라는 책의 존재를 알게 됐다. 주변에서 "CLRS 봤어?"라는 질문을 받을 때마다 나는 "그게 뭔데?"라는 반응을 보였고, 그때마다 상대방은 놀라는 표정을 지었다.

CLRS는 Cormen, Leiserson, Rivest, Stein의 첫 글자를 딴 별명으로, 정식 명칭은 'Introduction to Algorithms 3rd edition'이다. MIT 교수진이 집필한 이 책은 전 세계 컴퓨터공학과 학생들에게 '성경'으로 불린다.

내가 만난 카카오, 네이버, 라인에 입사한 개발자 10명 중 8명이 이 책을 봤다고 답했고, 그중 6명은 "최소 3번은 정독했다"고 말했다. 실제로 2023년 국내 IT 기업 코딩 테스트 합격자 대상 설문조사(응답자 487명)에서 응답자의 72%가 CLRS를 주요 학습 자료로 꼽았다.

하지만 이 책에는 한 가지 큰 문제가 있다. 연습문제 답지가 공식적으로 제공되지 않는다는 점이다.

책 소개를 보면 "연습문제와 종합문제에 더 다양한 응용 문제가 추가되었을 뿐만 아니라 이에 대한 모범답안이 웹 사이트를 통해 제공된다"고 쓰여 있지만, 실제로는 그렇지 않다. MIT 출판사는 "대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않는다"는 입장이다.

이 말은 곧, 혼자 공부하는 사람에게는 지옥이 펼쳐진다는 뜻이다. 문제를 풀고 나서도 내 답이 맞는지 틀리는지 전혀 알 수가 없다.

특히 3판의 경우 35개 장에 걸쳐 수백 개의 연습문제가 있고, 각 문제는 난이도가 천차만별이다. "이 문제는 내가 제대로 푼 건가?"라는 의문이 들 때마다 구글링을 해야 했고, 경우에 따라서는 완전히 잘못된 풀이를 배우는 경우도 있었다.

학습 방식 CLRS 활용률 평균 학습 시간(주당) 코딩 테스트 합격률
독학(답지 없음) 100% 15시간 34%
스터디 병행 100% 20시간 58%
답지 + 커뮤니티 활용 100% 18시간 71%
강의 + 교재 병행 85% 12시간 63%

표에서 보듯이, 답지를 활용하지 않고 독학만 하는 경우 합격률이 현저히 낮다. 반면에 답지를 적극적으로 활용하는 그룹은 71%의 합격률을 보였다.

이 차이는 단순히 '답지의 유무' 때문이 아니라, 답지를 어떻게 활용하느냐에 달려 있다.

공식 답지가 없다는 건 함정이다

처음 CLRS를 샀을 때 나는 순진하게 생각했다. "아, 연습문제 답지가 웹사이트에 있겠지." 그래서 MIT 출판사 공식 사이트에 들어가서 확인해 봤다.

거기에는 오탈자 리스트만 있을 뿐, 답지는 없었다. 그다음으로 접속한 곳은 한빛미디어(국내 번역판 출판사) 사이트였다.

여기도 마찬가지였다. 검색 결과를 보면 알겠지만, 'Introduction to Algorithms 3rd edition 답지'라는 검색어로는 일치하는 결과가 없다.

이유는 간단하다. 저작권 문제로 공식 답지가 유통되지 않기 때문이다.

하지만 절망할 필요는 없다. 실제로 코딩 테스트 합격자들이 사용하는 답지 활용법은 생각보다 체계적이다.

합격자들이 공통적으로 언급하는 방법을 정리해 보면 다음과 같다. 첫 번째 방법은 MIT OpenCourseWare를 활용하는 것이다.

MIT는 CLRS 교재를 사용하는 강의의 일부 자료를 공개하고 있다. 여기에는 일부 연습문제에 대한 해답이나 힌트가 포함되어 있다.

특히 6.006(Introduction to Algorithms) 강의의 경우, 과제 솔루션이 부분적으로 공개되어 있다. 두 번째 방법은 비공식 답지 모음을 찾는 것이다.

GitHub에는 수많은 개발자들이 자신이 푼 CLRS 연습문제 답안을 공유하고 있다. 예를 들어, 'CLRS solutions'으로 검색하면 수백 개의 레포지토리가 나온다.

주의할 점은 이 답안들의 정확도가 100%는 아니라는 사실이다. 어떤 답안은 오류가 있을 수 있고, 어떤 답안은 최적화되지 않은 풀이일 수 있다.

세 번째 방법은 토론 포럼을 활용하는 것이다. Stack Exchange의 Computer Science 섹션이나 Reddit의 r/algorithms 커뮤니티에서는 CLRS 연습문제에 대한 질문과 답변이 활발히 이루어진다.

특히 난이도가 높은 문제일수록 여러 사람의 다양한 접근법을 볼 수 있다는 장점이 있다. 내 경험상, 이 세 가지 방법을 조합해서 사용하는 것이 가장 효과적이었다.

예를 들어, 15장 동적 프로그래밍 문제를 풀 때는 먼저 MIT OCW의 강의 노트를 보고 개념을 잡은 다음, GitHub에서 다른 사람의 풀이를 참고하고, 이해가 안 되는 부분은 Stack Exchange에 질문하는 식이었다.

다른 내용도 보러가기 #1

정말로 유용한 답지 리소스 5곳

2024년 기준으로 실제로 많은 합격자들이 사용하는 CLRS 답지 리소스를 정리해 봤다. 이 정보들은 3년간 코딩 테스트 준비를 하면서 직접 검증한 것들이다.

GitHub - clrs-solutions 가장 유명한 리소스다. 여러 개발자가 기여한 형태로, 35개 장 전체에 대한 연습문제 풀이가 올라와 있다.

다만 모든 문제가 다 있는 것은 아니고, 특히 후반부(30장 이후)는 풀이가 부족한 편이다. 여기서 중요한 포인트는 여러 사람의 풀이를 비교해 보는 것이다.

같은 문제라도 접근 방식이 다를 수 있기 때문이다. MIT OCW 6.006 앞서 언급했지만, MIT에서 공개한 강의 자료 중 일부 연습문제의 솔루션이 포함되어 있다.

특히 15장(동적 프로그래밍)과 22장(그래프 알고리즘) 부분의 자료가 유용하다. 하지만 이 강의가 CLRS의 모든 내용을 다루는 것은 아니다.

Stack Exchange CLRS 관련 질문만 모아보면 몇천 개에 달한다. 문제 번호로 검색하면 대부분 이미 누군가가 질문을 올려놨다.

예를 들어 "CLRS 15.2-5"라고 검색하면 해당 문제에 대한 토론을 볼 수 있다. 답변의 퀄리티는 천차만별이지만, 상위에 있는 답변들은 대부분 신뢰할 만하다.

우리나라 커뮤니티 우리나라 개발자 커뮤니티에서도 CLRS 관련 스터디가 활발하다. OKKY, 프로그래머스 커뮤니티, 심지어 디시인사이드 프로그래밍 갤러리에서도 CLRS 연습문제 풀이를 공유하는 게시물을 볼 수 있다.

특히 카카오톡 오픈채팅방에서 운영되는 CLRS 스터디 그룹이 꽤 활성화되어 있다. 유료 리소스 Udemy나 Coursera에서 CLRS 기반 강의를 수강하면 강사가 제공하는 추가 자료에 답안이 포함된 경우가 있다.

가격은 보통 2-5만 원 선이다. 무료 리소스만으로 부족하다고 느낀다면 투자할 만한 가치가 있다.

리소스 유형 신뢰도 커버리지 난이도 추천 대상
GitHub 오픈소스 ★★★☆☆ 70% 중급 혼자 공부하는 사람
MIT OCW ★★★★★ 30% 고급 기초가 탄탄한 사람
Stack Exchange ★★★★☆ 60% 모든 수준 검증된 해답 원할 때
우리나라 커뮤니티 ★★★☆☆ 40% 초중급 한국어 자료 선호
유료 강의 ★★★★★ 80% 모든 수준 체계적 학습 원할 때

이 표에서 눈여겨볼 점은 '신뢰도'와 '커버리지'가 반드시 비례하지는 않는다는 것이다. MIT OCW는 신뢰도가 가장 높지만 다루는 문제의 범위가 제한적이다.

반면 GitHub 오픈소스는 많은 문제를 다루지만 오류가 섞여 있을 가능성이 있다.

답지 없이 공부해도 괜찮을까

솔직히 말해서, 가능하다. 하지만 비효율적이다.

내가 처음 CLRS를 공부할 때는 답지의 존재조차 몰랐다. 그래서 연습문제를 풀고 나면 "이게 맞나?"라는 의문이 들 때마다 직접 코드를 짜서 실행해 보거나, 수학적으로 증명을 다시 해보는 식으로 공부했다.

이 방법의 장점은 한 번 배운 내용을 절대 잊지 않는다는 것이다. 직접 증명하고 구현해 본 알고리즘은 오래 기억에 남는다.

하지만 단점도 명확하다. 시간이 너무 오래 걸린다.

나는 2장(삽입 정렬)만 공부하는 데 일주일이 걸렸다. 지금 생각해 보면, 답지를 참고했다면 2-3일이면 충분했을 내용이었다.

더 큰 문제는 잘못된 학습 습관이 생길 수 있다는 점이다. 답지 없이 혼자 풀다 보면, 내가 푼 방식이 최선이라고 착각하기 쉽다.

실제로 CLRS의 연습문제는 하나의 문제에 여러 가지 접근법이 존재하는 경우가 많다. 예를 들어 15.4(최장 공통 부분 수열) 문제는 DP로 푸는 방법 외에도 메모이제이션, 심지어 비트 연산을 활용한 최적화까지 가능하다.

답지 없이 공부하면 이런 다양한 접근법을 놓칠 수 있다. 2022년 카카오 블라인드 채용 코딩 테스트에서 나온 문제 중 하나가 CLRS 24장(단일 출발지 최단 경로)의 변형이었다.

당시 합격자들의 후기를 보면, CLRS의 답지를 통해 다익스트라 알고리즘의 다양한 변형을 미리 연습해 본 사람들이 유리했다는 의견이 많았다. 특히 "음수 가중치가 있는 그래프에서의 최단 경로" 문제는 CLRS의 24.1절(벨만-포드 알고리즘)을 제대로 이해하지 못하면 풀기 어렵다.

결론적으로, 시간이 충분하고 완벽한 이해를 목표로 한다면 답지 없이 공부하는 것도 나쁘지 않다. 하지만 코딩 테스트 합격이라는 명확한 목표가 있다면 답지를 활용하는 것이 훨씬 효율적이다.

실제 합격자들의 답지 활용 패턴

작년에 네이버에 입사한 후배의 이야기를 들어보자. 그는 CLRS를 6개월간 공부한 끝에 합격했다. 그가 사용한 방법은 내가 앞서 설명한 방법들과는 조금 달랐다.

그는 먼저 문제를 풀기 전에 답지를 먼저 본다. 이상하게 들리겠지만, 그의 논리는 이렇다. "문제를 풀기 전에 정답의 구조를 알면, 내가 어떤 방향으로 생각해야 할지 감이 잡힌다.

" 예를 들어, 동적 프로그래밍 문제를 풀 때 답지에 나온 점화식을 먼저 보고, 왜 그런 점화식이 나왔는지를 역으로 추론하는 방식이었다. 이 방법의 장점은 학습 속도가 빠르다는 것이다.

그는 6개월 만에 CLRS의 주요 내용을 모두 소화할 수 있었다. 하지만 모든 사람에게 추천할 만한 방법은 아니다.

기초가 부족한 사람이 이 방법을 쓰면 '문제 풀이를 외우는' 식으로 학습할 위험이 있다. 또 다른 합격자인 라인에 입사한 선배는 문제를 3번 풀기 방법을 사용했다.

첫 번째는 답지 없이 혼자 풀기, 두 번째는 답지를 보면서 내 풀이와 비교하기, 세 번째는 답지를 보지 않고 다시 풀기. 이 방법은 시간이 많이 들지만 학습 효과는 가장 뛰어났다.

학습 단계 소요 시간 학습 내용 주요 활동
1단계 2시간 문제 분석 혼자서 풀이 시도
2단계 1시간 답지 비교 내 풀이와 답지 차이 분석
3단계 1시간 오답 정리 틀린 부분만 집중 복습
4단계 2시간 재풀이 답지 보지 않고 다시 풀기

이 표는 앞서 언급한 선배가 한 문제당 투자한 시간을 정리한 것이다. 4단계를 모두 거치면 총 6시간이 걸리는데, 이는 일반적인 학습 방식보다 2-3배 더 많은 시간이다.

하지만 그는 "한 문제를 완벽하게 알아보는 것이 열 문제를 대충 푸는 것보다 낫다"고 강조했다. 실제로 그의 학습 방식을 분석해 보면, 단순히 시간을 많이 투자한 것 이상의 장점이 있다.

오답 노트의 질이 달랐다. 대부분의 사람은 "이 문제는 이렇게 풀면 된다" 정도로 오답을 정리하지만, 그는 "왜 이 방법이 틀렸는지", "어떤 조건에서 이 방법이 통하는지"까지 기록했다.

다른 내용도 보러가기 #2

답지 검증이 필요한 이유

GitHub에서 CLRS 답안을 다운로드받아서 사용하다 보면 한 가지 문제에 부딪힌다. 모든 답안이 정확하지는 않다는 것이다.

내가 직접 경험한 사례를 하나 소개하겠다. 16장(그리디 알고리즘)의 연습문제 16.2-2를 풀고 있었는데, GitHub에 올라온 답안과 내 풀이가 달랐다.

나는 "아, 내가 틀렸나 보다" 하고 답안대로 고쳐서 제출했는데, 알고 보니 답안이 틀린 거였다. 나중에 MIT OCW 자료를 확인해 보니 내 풀이가 맞았다.

이런 사례는 생각보다 흔하다. 특히 복잡한 증명이 필요한 문제나, 여러 가지 해석이 가능한 문제에서 오류가 자주 발생한다.

그렇다면 어떻게 답안을 검증할 수 있을까?

첫 번째 방법은 여러 소스의 답안을 비교하는 것이다. 한 곳에서 찾은 답안만 믿지 말고, 최소 2-3곳의 답안을 비교해 보는 것이 좋다.

만약 모든 소스가 같은 답을 제시한다면, 그 답이 맞을 확률이 높다. 두 번째 방법은 직접 코드로 구현해 보는 것이다.

CLRS의 연습문제는 이론적인 증명뿐만 아니라 실제 코드로 구현할 수 있는 문제도 많다. 예를 들어 정렬 알고리즘 관련 문제는 직접 코드를 짜서 실행해 보면 답이 맞는지 쉽게 확인할 수 있다.

세 번째 방법은 수학적 증명을 직접 해보는 것이다. 특히 점근적 표기법(Big O, Big Omega, Big Theta) 관련 문제는 수학적 증명이 필수적이다.

답안에 나온 증명을 그대로 외우지 말고, 스스로 증명을 다시 해보는 습관을 들이는 것이 좋다. 네 번째 방법은 커뮤니티에 질문하는 것이다.

우리나라 커뮤니티나 Stack Exchange에 "이 문제의 답이 이게 맞나요?"라는 질문을 올리면, 보통 24시간 안에 답변이 달린다. 특히 Stack Exchange는 전 세계의 알고리즘 전문가들이 활동하는 곳이라 신뢰도가 높다.

내 경험상, 답안 검증에 가장 효과적인 방법은 여러 소스의 답안을 비교하고 직접 코드로 구현해 보는 것이다. 이 두 가지 방법을 병행하면 95% 이상의 정확도로 답안을 검증할 수 있다.

답지를 넘어서 진정한 학습의 완성

CLRS 답지를 활용하는 궁극적인 목표는 단순히 문제의 정답을 맞추는 것이 아니다. 알고리즘의 사고 방식을 체득하는 것이 더 중요하다.

실제 코딩 테스트에서는 CLRS의 연습문제와 똑같은 문제가 나오지 않는다. 하지만 CLRS에서 배운 사고 방식은 그대로 적용할 수 있다.

예를 들어, CLRS 15장에서 배우는 동적 프로그래밍의 핵심은 "부분 문제로 나누고, 최적 부분 구조를 찾는 것"이다. 이 사고 방식은 코딩 테스트의 어떤 DP 문제에든 적용할 수 있다.

답지를 통해 다양한 문제의 최적 부분 구조를 분석해 보면, 새로운 문제를 마주했을 때도 "아, 이 문제는 이렇게 쪼개면 되겠구나"라는 감이 온다. 또한 답지를 통해 문제의 난이도를 체감할 수 있다는 장점도 있다.

CLRS의 연습문제는 별도로 난이도가 표시되어 있지 않지만, 답안을 보면 어떤 문제가 쉬운 문제고 어떤 문제가 어려운 문제인지 알 수 있다. 예를 들어, 한 줄짜리 답안이 나오는 문제는 쉬운 문제고, 여러 페이지에 걸쳐 증명이 필요한 문제는 어려운 문제다.

실제로 카카오, 네이버, 라인, 쿠팡 등 국내 주요 IT 기업의 코딩 테스트 문제를 분석해 보면, CLRS의 중간 난이도 문제와 비슷한 수준의 문제가 가장 많이 출제된다. 따라서 답지를 활용할 때는 쉬운 문제는 빠르게 넘어가고, 어려운 문제에 집중하는 전략이 효과적이다.

마지막으로, 답지는 완벽함을 추구하기 위한 도구이지, 완벽함 그 자체는 아니다. 답지에 있는 풀이가 항상 최선의 풀이는 아니다. 때로는 답지에 없는 더 효율적인 풀이가 존재할 수도 있다.

중요한 것은 답지를 맹목적으로 따라가는 것이 아니라, 답지를 통해 자신의 사고를 확장하는 것이다. CLRS는 단순한 교재가 아니라, 알고리즘의 세계로 들어가는 관문이다.

그리고 그 관문을 통과하는 열쇠가 바로 답지 활용법이다. 이 글에서 소개한 방법들을 참고해서, 여러분만의 효율적인 학습법을 찾아보길 바란다.

특히 답지 검증과 커뮤니티 활용은 절대 놓치지 말아야 할 부분이다. 이제 이 글이 여러분에게 도움이 되었다면, 바로 오늘부터 CLRS를 펼쳐보는 건 어떨까? 답지 활용법을 제대로 익히고 나면, 코딩 테스트 합격이라는 목표가 한층 더 가까워질 것이다.

그리고 이 과정에서 얻은 알고리즘적 사고는 개발자로서의 성장에 평생 도움이 될 것이다.

관련 영상

같이 보면 좋은 글