도서 소개
‘코딩 테스트는 어떻게 준비해야 할까?’ IT 기업으로 취업 또는 이직을 준비하는 사람들을 합격으로 이끌어 줄 책이 새롭게 출간되었다. 네이버, 카카오, 삼성 등 주요 IT 기업의 역대 기출 유형을 분석한 35가지 자료구조와 알고리즘 이론부터 ‘백준 온라인 저지’에서 엄선한 핵심 문제까지 코딩 테스트를 대비해 필요한 모든 것을 한 권에 정리했다. 이번 개정판에서는 최신 출제 경향을 반영해 알고리즘 유형과 문제를 보강하고 합격률을 높이는 비법 노트를 담았다.
출판사 리뷰
IT 기업 취준생의 필독서가 3년 만에 업그레이드해서 돌아왔다!
출제 경향을 완벽하게 반영한 문제로 코딩 테스트 한 번에 합격하자!‘코딩 테스트는 어떻게 준비해야 할까?’ IT 기업으로 취업 또는 이직을 준비하는 사람들을 합격으로 이끌어 줄 책이 새롭게 출간되었습니다. 네이버, 카카오, 삼성 등 주요 IT 기업의 역대 기출 유형을 분석한 35가지 자료구조와 알고리즘 이론부터 ‘백준 온라인 저지’에서 엄선한 핵심 문제까지 코딩 테스트를 대비해 필요한 모든 것을 한 권에 정리했습니다. 이번 개정판에서는 최신 출제 경향을 반영해 알고리즘 유형과 문제를 보강하고 합격률을 높이는 비법 노트를 담았습니다.
시험이 코앞이라 책 한 권을 다 볼 시간이 없다면? ‘3일 모의고사’ 코스를 활용하세요. 중요한 알고리즘을 다룬 ‘핵심 유형’ 문제 16개, 시험에서 자주 다루는 ‘빈출 유형’ 문제 11개만 빠르게 공부할 수 있습니다. 모든 문제는 ‘백준 온라인 저지’(https://www.acmicpc.net/)에서 실습할 수 있으니, 먼저 책으로 공부한 다음, 백준 온라인 저지에서 다시 한번 풀면서 코딩 테스트를 완벽하게 대비해 보세요!
“최신 출제 경향 100% 반영”
실제 코딩 테스트에 나올 알고리즘 영역만 엄선했다!8년 동안 코딩 테스트 강의를 진행하면서 얻은 저자의 노하우로 실제 IT 기업 코딩 테스트에 출제되었거나 앞으로 출제될 만한 영역을 엄선했습니다. 코딩 테스트를 앞두고 이 책을 읽을 여러분이 오직 시험 대비에 집중할 수 있도록 출제 확률이 낮은 자료구조와 알고리즘 영역은 제외하고 합격을 위한 핵심만 담았습니다.
“국내 최다! 역대 기출 유형을 총망라한 알고리즘 103제 수록”
중요도 3단계로 한 번 더 선별했다. 빈출, 핵심 문제부터 풀자!주요 IT 기업의 역대 코딩 테스트 기출 유형을 빠짐없이 공부할 수 있도록 국내에서 가장 많은 문제를 수록했습니다. 이 책에 담긴 103제를 풀면 코딩 테스트를 완벽하게 대비할 수 있습니다. 이 중에서도 빈출 문제 11개, 핵심 문제 16개는 따로 선별했습니다. 시험이 코앞에 닥쳐 공부할 시간이 없다면 빈출 문제와 핵심 문제부터 풀어 보세요.
“103제 모두 ‘백준 온라인 저지’에서 실습 가능”
책으로 한 번, 온라인으로 한 번 더 실습하면 학습 효과 2배 이상!책에 실린 문제는 모두 국내 최대 알고리즘 문제집 웹 사이트인 ;백준 온라인 저지;에서 엄선했습니다. 책으로 문제 풀이 방법을 공부한 다음, ‘백준 온라인 저지’에서 직접 문제를 풀어 보세요. 자신이 직접 작성한 코드를 채점하고 수정하다 보면 코딩 실력이 쑥쑥 늘어나고, 핵심 알고리즘 유형마다 활용할 수 있는 나만의 템플릿 코드도 확보할 수 있습니다.
“4단계 문제 풀이 습관으로 연습을 실전처럼”
코딩 테스트는 시간과의 싸움! 실전처럼 연습해서 극복하자!다른 시험과 마찬가지로 코딩 테스트도 주어진 시간을 적절히 활용하여 문제를 풀어야 합니다. 시간에 쫓겨 실수하지 않도록 체계적인 문제 풀이 방법을 담았습니다. 이 책에서는 [문제 분석하기 → 손으로 풀어 보기 → 슈도코드 작성하기→ 코드 구현하기]까지 총 4단계로 알고리즘 문제를 풉니다. 이렇게 문제를 푸는 습관을 들인다면 실제 시험에서도 실수 없이 실력을 마음껏 발휘할 수 있습니다.
“합격과 불합격은 종이 한 장 차이!”
시험 결과를 좌우하는 사소한 꿀팁까지!작은 실수로 시험에서 아쉽게 떨어지는 사례가 많습니다. 8년 동안 코딩 테스트 강의를 진행한 저자가 직접 선정한, 시험 현장에서 자주 일어나는 실수와 이를 줄이는 노하우를 [미리 보는 코딩 테스트 오답 노트]에 담았습니다. 부록에는 시험 직전까지 합격 전략을 되새길 수 있는 [시험장에서 살아남는 전략 노트]를 수록했습니다. 이 책과 함께 공부하면 그동안 쌓아 온 여러분의 노력이 헛되지 않게 코딩 테스트에 합격할 수 있습니다!
“목표를 정해 혼자서도 체계적으로 공부한다!”
초보자를 위한 ‘30일 코스’와 시험 임박 전 ‘3일 코스’, 2가지 학습 계획표 제공이 책은 혼자서도 체계적으로 공부할 수 있도록 학습 계획표를 제공합니다. 학습 계획표에 스스로 목표 날짜를 써넣고 공부해 보세요. 코딩 테스트를 차근차근 공부하고 싶다면 ‘30일 코스’를, 시험에 임박해 중요한 문제만 먼저 풀어 보고 싶다면 ‘3일 코스’를 추천합니다. 또한 완성된 예제 파일을 이지스퍼블리싱 홈페이지와 저자 깃허브에서 제공합니다. 자신이 작성한 코드와 예제 파일을 비교하며 막힘없이 공부해 보세요!
• 이지스퍼블리싱 홈페이지: www.easyspub.co.kr → [자료실] 클릭 → 도서명 검색
• 저자 깃허브: https://github.com/doitcodingtest/java
함께 배우고, 나누고, 성장하는 ‘Do it! 스터디룸’으로 오세요! 혼자 계획을 세우고 공부하다 보면 금방 지치기 마련입니다. 어려운 내용은 나와 비슷한 고민을 하는 독자와 공유해 보세요. 서로 도움을 주고받으며 공부하다 보면 더 보람차니까요. 내가 잘 이해한 내용은 남을 도와주고 내가 잘 이해하지 못한 내용은 도움을 받으면서 공부하면 복습 효과도 누릴 수 있습니다. 멀리 가려면 친구와 함께해 보세요.
• Do it! 스터디룸: cafe.naver.com/doitstudyroom
작가 소개
지은이 : 김종관
국내 IT 기업에서 개발자로 15년째 일하고 있습니다. 임직원을 대상으로 한 알고리즘 코딩 테스트 강의를 시작으로 지금까지 알고리즘을 비롯한 다양한 강의 활동도 병행하고 있습니다. 코딩 테스트 강의를 하며 만난 학생들이 작은 실수로 아쉽게 당락이 좌우되는 걸 보며 알고리즘의 개념뿐 아니라 실수를 줄여 주는 문제 풀이 방법, 코딩 테스트에서 떨어지지 않는 작은 팁까지 이 책에 담았습니다. 이 책과 함께 C++ 편과 파이썬 편도 집필했습니다. 여러 IT 분야에 관심이 있고, 공부한 내용을 누구나 쉽게 이해할 수 있도록 알려 주는 것을 좋아합니다. 최근에는 관심 영역을 IT 경영과 클린 코드, 리팩터링, 코드 리뷰 분야로 넓히고 있습니다.주요 저서•《Do it! 알고리즘 코딩 테스트 ― 자바 편》(이지스퍼블리싱, 2025)•《Do it! 알고리즘 코딩 테스트 ― C++ 편》(이지스퍼블리싱, 2022)•《Do it! 알고리즘 코딩 테스트 ― 파이썬 편》(이지스퍼블리싱, 2022)•《Do it! 클린 프로그래밍》(이지스퍼블리싱, 2025)•《핵심 정보통신기술 총서 8 ─ 알고리즘 통계(공저)》
목차
첫째마당 코딩 테스트 준비하기
01 어떤 알고리즘으로 풀어야 할까?
_01-1 시간 복잡도 표기법 알아보기
_01-2 시간 복잡도 활용하기
__[000] 수 정렬하기
02 코드의 논리 오류를 어떻게 잡을까?
_02-1 디버깅은 왜 중요할까?
_02-2 디버깅 활용 사례 살펴보기
둘째마당 Do it! 코딩 테스트 ― 기초 편
03 미리 보는 코딩 테스트 오답 노트
_03-1 예상치 못한 음수 결과 해결하기
_03-2 시간 초과의 원인을 찾아 해결하기
_03-3 인덱스에 의미 부여하여 풀어 보기
_03-4 나머지 연산의 중요성 알아보기
_03-5 정렬 기초 다지기
_03-6 다중 조건 정렬 익히기
_03-7 이차원 ArrayList 사용하기
04 자료구조
_04-1 배열과 리스트
__[001] 숫자의 합 구하기
__[002] 평균 구하기
_04-2 구간 합
__[003] 구간 합 구하기 1
__[004] 구간 합 구하기 2
__[005] 나머지 합 구하기
_04-3 투 포인터
__[006] 연속된 자연수의 합 구하기
__[007] 주몽의 명령
__[008] ‘좋은 수’ 구하기
_04-4 슬라이딩 윈도우
__[009] DNA 비밀번호
__[010] 최솟값 찾기
_04-5 스택과 큐
__[011] 스택으로 수열 만들기
__[012] 오큰수 구하기
__[013] 카드 게임
__[014] 절댓값 힙 구현하기
05 정렬
_05-1 버블 정렬
__[015] 수 정렬하기 1
__[016] 버블 정렬 프로그램 1
_05-2 선택 정렬
__[017] 내림차순으로 자릿수 정렬하기
_05-3 삽입 정렬
__[018] ATM 인출 시간 계산하기
_05-4 퀵 정렬
__[019] K번째 수 구하기
_05-5 병합 정렬
__[020] 수 정렬하기 2
__[021] 버블 정렬 프로그램 2
_04-6 기수 정렬
__[022] 수 정렬하기 3
06 탐색
_06-1 깊이 우선 탐색
__[023] 연결 요소의 개수 구하기
__[024] 신기한 소수 찾기
__[025] 친구 관계 파악하기
_06-2 백트래킹
__[026] N과 M
__[027] N-Queen 배치하기
__[028] 색종이 붙이기
_06-3 너비 우선 탐색
__[029] DFS와 BFS 프로그램
__[030] 미로 탐색하기
__[031] 트리의 지름 구하기
_06-4 이진 탐색
__[032] 원하는 정수 찾기
__[033] 블루레이 만들기
__[034] 배열에서 K번째 수 찾기
07 그리디
_07-1 그리디 알고리즘
__[035] 동전 개수의 최솟값 구하기
__[036] 카드 정렬하기
__[037] 수를 묶어서 최댓값 만들기
__[038] 회의실 배정하기
__[039] 최솟값을 만드는 괄호 배치 찾기
08 정수론
_08-1 소수 구하기
__[040] 소수 구하기
__[041] 거의 소수 구하기
__[042] 소수 & 팰린드롬 수 중에서 최솟값 찾기
__[043] 제곱이 아닌 수 찾기
_08-2 오일러 피
__[044] 오일러 피 함수 구현하기
_08-3 유클리드 호제법
__[045] 최소 공배수 구하기
__[046] 최대 공약수 구하기
__[047] 칵테일 만들기
_08-4 확장 유클리드 호제법
__[048] Ax + By = C
셋째마당 Do it! 코딩 테스트 ― 실전 편
09 그래프
_09-1 그래프의 표현
__[049] 특정 거리의 도시 찾기
__[050] 효율적으로 해킹하기
__[051] 이분 그래프 판별하기
__[052] 물의 양 구하기
_09-2 유니온 파인드
__[053] 집합 표현하기
__[054] 여행 계획 짜기
__[055] 거짓말쟁이가 되긴 싫어
_09-3 위상 정렬
__[056] 줄 세우기
__[057] 게임 개발하기
__[058] 임계 경로 구하기
_09-4 다익스트라
__[059] 최단 경로 구하기
__[060] 최소 비용 구하기
__[061] K번째 최단 경로 찾기
_09-5 벨만-포드
__[062] 타임머신으로 빨리 가기
__[063] 세일즈맨의 고민
_09-6 플로이드-워셜
__[064] 가장 빠른 버스 노선 구하기
__[065] 경로 찾기
__[066] 케빈 베이컨의 6단계 법칙
_09-7 최소 신장 트리
__[067] 최소 신장 트리 구하기
__[068] 다리 만들기
__[069] 불우이웃돕기
10 트리
_10-1 트리 알아보기
__[070] 트리의 부모 찾기
__[071] 리프 노드의 개수 구하기
_10-2 트라이
__[072] 문자열 찾기
_10-3 이진 트리
__[073] 트리 순회하기
_10-4 세그먼트 트리
__[074] 구간 합 구하기 3
__[075] 최솟값 찾기 2
__[076] 구간 곱 구하기
_10-5 최소 공통 조상
__[077] 최소 공통 조상 구하기 1
__[078] 최소 공통 조상 구하기 2
11 조합
_11-1 조합 알아보기
__[079] 이항계수 구하기 1
__[080] 이항계수 구하기 2
__[081] 부녀회장이 될 테야
__[082] 다리 놓기
__[083] 조약돌 꺼내기
__[084] 순열의 순서 구하기
__[085] 사전 찾기
__[086] 선물 전달하기
12 동적 계획법
_12-1 동적 계획법 알아보기
__[087] 정수를 1로 만들기
__[088] 퇴사 준비하기
__[089] 이친수 구하기
__[090] 2*N 타일 채우기
__[091] 계단 수 구하기
__[092] 연속된 정수의 합 구하기
__[093] 최장 공통 부분 수열 찾기
__[094] 가장 큰 정사각형 찾기
__[095] 빌딩 순서 구하기
__[096] DDR을 해보자
__[097] 행렬 곱 연산 횟수의 최솟값 구하기
__[098] 외판원의 순회 경로 짜기
__[099] 가장 길게 증가하는 부분 수열 찾기
13 기하
_13-1 기하 알아보기
__[100] 선분 방향 구하기
__[101] 선분의 교차 여부 구하기
__[102] 선분을 그룹으로 나누기
__[103] 다각형의 넓이 구하기
부록 A 시험장에서 살아남는 전략 노트
_A-1 문제를 효과적으로 분석하기
_A-2 올바른 알고리즘 선택하기
_A-3 탈락을 결정 짓는 실수 제거하기
찾아보기