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