합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드
핵심 개념, 프로그래머스에서 선별한 81개 문제 풀이, PCCP 대비까지!
합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드
개발자 취업과 이직의 필수 관문, 코딩 테스트! 어떻게 준비해야 할까? 이 책은 시간 복잡도, 배열, 문자열, 정렬, 이진 탐색, 완전 탐색, 해시, 동적 프로그래밍, 자주 나오는 자료 구조 등 코딩 테스트에 필요한 핵심 지식을 모두 담고 있다. 단순히 문제를 풀어보는 것에서 그치지 않고, 문제를 분석하고, 요구 조건을 체크하고, 다양한 접근법으로 설계한 내용을 구현하며 문제를 푸는 생각의 흐름을 완성할 수 있게 도와준다. 또한, 기본 문제 풀이 외에 핵심 개념 및 다양한 풀이를 함께 살펴보며, 방금 푼 그 문제를 100% 내 것으로 만들 수 있게 구성했다. 프로그래머스의 노하우가 담긴 문제를 선별해 담았으며, 파이썬스러운 문제 풀이와 해결법으로 파이썬을 좀 더 깊이 있게 이해할 수 있다. 마지막으로 카카오 블라인드 테스트와 코딩전문역량인증시험(PCCP) 모의고사 문제를 책에서 배운 내용들을 이용해 풀어보면서 실전 감각을 키울 수 있다. 취업과 이직을 위해 코딩 테스트를 준비한다면 이 책으로 시작해보자.
1장. 코딩 테스트
1.1 코딩 테스트란?
1.2 코딩 테스트를 보는 이유
_1.2.1 문제 해결 과정을 보는 것
_1.2.2 모든 것의 기초, 생각하는 실력을 다지는 것
_1.2.3 똑같은 결과를 빠르고, 효율적으로
1.3 코딩과 디버깅
_1.3.1 잘 짠 코드란 무엇인가?
_1.3.2 코드를 짤 때 흔히 하는 실수
_1.3.3 디버깅과 시행착오 줄이기
2장. 시간 복잡도
2.1 시간 복잡도란?
_2.1.1 빅오(Big-O) 표기법
_2.1.2 시간 복잡도 그래프
_2.1.3 시간 복잡도 선택 시 참고할 만한 사항
2.2 시간 복잡도 계산하기
_2.2.1 어림짐작해보기
_2.2.2 시간 복잡도 줄이기
_2.2.3 여러 상황에서의 시간 복잡도 생각해보기
3장. 배열
3.1 2차원 배열 이해하기
_3.1.1 1차원 배열 + 1차원 배열?
_3.1.2 배열을 다양하게 생각해보기
3.2 2차원 배열 다뤄보기
_3.2.1 2차원 배열 응용
[문제 01] 교점에 별 만들기 - Level 2
[문제 02] 행렬 테두리 회전하기 - Level 2
_3.2.2 dx dy로 방향을 정하는 방법
[문제 03] 삼각 달팽이 - Level 2
[문제 04] 거리두기 확인하기 - Level 2
_3.2.3 연산(숫자)
[문제 05] 행렬의 곱셈 - Level 2
4장. 문자열
4.1 문자열이란
_4.1.1 문자열의 특징
_4.1.2 문자열을 다른 방식으로 생각해보기
[문제 06] 시저 암호 - Level 1
[문제 07] 이상한 문자 만들기 – Level 1
4.2 문자열 다뤄보기
_4.2.1 문자열 응용하기
[문제 08] 튜플 – Level 2
[문제 09] 짝지어 제거하기 – Level 2
[문제 10] 문자열 압축 – Level 2
_4.2.2 진법 바꾸기
[문제 11] 3진법 뒤집기 - Level 1
[문제 12] 이진 변환 반복하기 - Level 2
_4.2.3 찾아서 바꾸기
[문제 13] 신규 아이디 추천 - Level 1
4.3 정규표현식
_4.3.1 정규표현식이란
[문제 14] 문자열 다루기 기본 - Level 1
[문제 15] 핸드폰 번호 가리기 - Level 1
5장. 재귀
5.1 재귀 함수란?
_5.1.1 for 문에서 벗어나기
_5.1.2 재귀의 최대 범위와 한계점 기억하기
_5.1.3 참고: 꼬리 재귀
5.2 재귀 정의하기
_5.2.1 상태 정의하기
_5.2.2 종료 조건
_5.2.3 점화식 세우기
5.3 다양한 문제 풀이
[문제 16] 콜라츠 추측 - Level 1
[문제 17] 하노이의 탑 - Level 3
[문제 18] 모음 사전 - Level 2
[문제 19] 호텔 방 배정 - Level 4
6장. 완전 탐색
6.1 완전 탐색이란?
_6.1.1 문제를 이해하는 방법
_6.1.2 상태와 상태 전이 진행
_6.1.3 완전 탐색의 종류와 사용되는 자료 구조
_6.1.4 방문 처리/백트래킹
6.2 다양한 문제 풀이
[문제 20] 모의고사 – Level 1
[문제 21] 카펫 – Level 2
[문제 22] 소수 찾기 – Level 2
[문제 23] 불량 사용자 - Level 3
[문제 24] 수식 최대화 - Level 2
7장. 정렬
7.1 정렬이란
_7.1.1 정렬의 기준 잡기
_7.1.2 정렬의 종류
7.2 정렬하기
_7.2.1 기본 기준 사용하기
[문제 25] 두 개 뽑아서 더하기 - Level 1
[문제 26] H-index - Level 2
_7.2.2 직접 기준 정하기
[문제 27] 문자열 내 마음대로 정렬하기 - Level 1
[문제 28] 가장 큰 수 - Level 2
8장. 이진 탐색
8.1 이진 탐색이란?
_8.1.1 이진 탐색이 가지는 이점
_8.1.2 구현 방법
8.2 탐색 효율 높이기
_8.2.1 정렬 기준 정하기
_8.2.2 파라메트릭 서치
8.3 다양한 문제 풀이
[문제 29] 입국심사 - Level 3
[문제 30] 순위 검색 - Level 2
[문제 31] 징검다리 - Level 4
[문제 32] 징검다리 건너기 - Level 3
9장. 해시
9.1 해시란
_9.1.1 해시 테이블이란
_9.1.2 해시의 시간 복잡도
9.2 다양한 문제 풀이
[문제 33] 완주하지 못한 선수 - Level 1
[문제 34] 전화번호 목록 - Level 2
[문제 35] 위장 - Level 2
[문제 36] 오픈 채팅방 - Level 2
[문제 37] 베스트 앨범 - Level 3
10장. 동적 프로그래밍
10.1 연산 줄이기
_10.1.1 완전 탐색의 문제점
[문제 38] 피보나치 수 - Level 2
_10.1.2 동적 프로그래밍의 핵심, 메모이제이션
_10.1.3 구현 방법
10.2 다양한 문제 풀이
[문제 39] N으로 표현 - Level 3
[문제 40] 정수 삼각형 - Level 3
[문제 41] 등굣길 - Level 3
[문제 42] 도둑질 - Level 4
11장. 자주 등장하는 자료 구조
11.1 스택과 큐
_11.1.1 스택
_11.1.2 큐와 덱
_11.1.3 다양한 문제 풀이
[문제 43] 주식 가격 - Level 2
[문제 44] 기능 개발 - Level 2
11.2 그래프와 트리
_11.2.1 그래프란
_11.2.2 트리란
_11.2.3 다양한 문제 풀이
[문제 45] 가장 먼 노드 - Level 3
[문제 46] 순위 - Level 3
[문제 47] 길 찾기 게임 - Level 3
11.3 잊을 만하면 나오는 자료 구조
_11.3.1 우선순위 큐 467
[문제 48] 디스크 컨트롤러 - Level 3
_11.3.2 투 포인터 473
[문제 49] 보석 쇼핑 - Level 3
_11.3.3 유니온 파인드
[문제 50] 섬 연결하기 - Level 3
_11.3.4 트라이
[문제 51] 가사 검색 - Level 4
12장. 구현
12.1 주의해야 할 점
_12.1.1 구현이 어려운 문제인 이유
_12.1.2 문제 나눠서 생각하기: 모듈화
_12.1.3 오류에 빠르게 대처하기
12.2 문제에서 이야기하는 대로 만들기
_12.2.1 규칙 찾아보기
_12.2.2 다양한 문제 풀이
[문제 52] 키패드 누르기 - Level 1
[문제 53] 2개 이하로 다른 비트 - Level 2
[문제 54] 스킬 트리 - Level 2
[문제 55] 줄 서는 방법 - Level 2
12.3 완전 탐색 기반으로 풀기
_12.3.1 깊이 우선 탐색(DFS)
[문제 56] 타깃 넘버 - Level 2
[문제 57] 여행 경로 - Level 3
[문제 58] 네트워크 - Level 3
[문제 59] 괄호 변환 - Level 2
_12.3.2 너비 우선 탐색(BFS)
[문제 60] 단어 변환 - Level 3
[문제 61] 게임 맵 최단거리 - Level 3
[문제 62] 경주로 건설 - Level 3
12.4 탐욕 알고리즘
_12.4.1 현재 상황에서의 최선
_12.4.2 탐욕 알고리즘을 사용할 수 있는 경우와 사용할 수 없는 경우
_12.4.3 다양한 문제 풀이
[문제 63] 조이스틱 - Level 2
[문제 64] 큰 수 만들기 - Level 2
[문제 65] 구명보트 - Level 2
[문제 66] 단속 카메라 - Level 3
13장. 도전: 카카오 2022 블라인드 테스트
[문제 67] 신고 결과 받기 - Level 1
[문제 68] k진수에서 소수 개수 구하기 - Level 2
[문제 69] 주차 요금 계산 - Level 2
[문제 70] 양궁대회 - Level 2
[문제 71] 양과 늑대 - Level 3
[문제 72] 파괴되지 않은 건물 - Level 3
[문제 73] 사라지는 발판 - Level 3
14장. 코딩전문역량인증시험, PCCP 모의고사
14.1 PCCP 모의고사 1회
[문제 74] 외톨이 알파벳 - Level 1
[문제 75] 체육대회 - Level 2
[문제 76] 유전법칙 - Level 2
[문제 77] 운영체제 - Level 3
14.2 PCCP 모의고사 2회
[문제 78] 실습용 로봇 - Level 1
[문제 79] 신입 사원 교육 - Level 2
[문제 80] 카페 확장 - Level 2
[문제 81] 보물 지도 - Level 3
독자의견 남기기