프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편

프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편

$40.01
Description
핵심 개념, 프로그래머스에서 선별한 79개 문제 풀이, PCCP 대비까지!
합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드
개발자 취업과 이직의 필수 관문, 코딩 테스트! 어떻게 준비해야 할까? 이 책은 시간 복잡도, 배열, 문자열, 정렬, 이진 탐색, 완전 탐색, 해시, 동적 프로그래밍, 자주 나오는 자료 구조 등 코딩 테스트에 필요한 핵심 지식을 모두 담고 있다. 단순히 문제를 풀어보는 것에서 그치지 않고, 문제를 분석하고, 요구 조건을 체크하고, 다양한 접근법으로 설계한 내용을 구현하며 문제를 푸는 생각의 흐름을 완성할 수 있게 도와준다. 또한, 기본 문제 풀이 외에 핵심 개념 및 다양한 풀이를 함께 살펴보며, 방금 푼 그 문제를 100% 내 것으로 만들 수 있게 구성했다. 프로그래머스의 노하우가 담긴 문제를 선별해 담았으며, 자바스러운 문제 풀이와 해결법으로 자바를 좀 더 깊이 있게 이해할 수 있다. 마지막으로 카카오 블라인드 테스트와 코딩전문역량인증시험(PCCP) 모의고사 문제를 책에서 배운 내용들을 이용해 풀어보면서 실전 감각을 키울 수 있다. 취업과 이직을 위해 코딩 테스트를 준비한다면 이 책으로 시작해보자.

저자

김현이

저자:김현이
한양대학교소프트웨어학과를졸업한구글코리아의소프트웨어엔지니어이다.좌우명이"좋은코드가좋은제품을만든다"인만큼,가독성이높고깔끔한코드를작성하는것을매우중요하게생각한다.회사에서는본업외에도2021년도부터GoogleCodingPracticewithKickStart에서프로그램을통해문제해결을처음접하는분들을위해공식문제해설과플랫폼안내영상을촬영하고있다.

목차

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.12차원배열이해하기
_3.1.11차원배열+1차원배열
_3.1.22차원배열이해하기
3.22차원배열다루어보기
_3.2.12차원배열응용
[문제01]교점에별만들기-Level2
[문제02]삼각달팽이-Level2
_3.2.2dx,dy로방향을정하는방법
[문제03]거리두기확인하기-Level2
_3.2.3연산
[문제04]행렬의곱셈-Level2

4장.문자열

4.1문자열이란
_4.1.1문자열의특징
_4.1.2문자열을다른방식으로생각해보기
[문제05]자연수뒤집어배열로만들기-Level1
[문제06]이상한시저암호-Level1
[문제07]이상한문자만들기-Level1
4.2문자열다루어보기
_4.2.1문자열응용하기
[문제08]문자열압축-Level2
_4.2.2진법바꾸기
[문제09]3진법뒤집기-Level1
[문제10]이진변환반복하기-Level2
_4.2.3찾기와바꾸기
[문제11]문자열내p와y의개수-Level1
[문제12]숫자문자열과영단어-Level1
4.3정규표현식
[문제13]문자열다루기기본-Level1
[문제14]신규아이디추천-Level1

5장.재귀

5.1재귀란?
_5.1.1for문에서벗어나기
_5.1.2재귀의최대범위와한계점기억하기
5.2재귀정의하기
_5.2.1상태정의하기
_5.2.2종료조건
_5.2.3점화식
5.3코드작성하기
_5.3.1코드변환하기
_5.3.2다양한문제풀이
[문제15]쿼드압축후개수세기-Level2
[문제16]하노이의탑-Level3
[문제17]모음사전-Level2

6장.완전탐색

6.1완전탐색이란?
_6.1.1상태와상태전이진행
_6.1.2완전탐색의종류
_6.1.3방문처리
6.2다양한문제풀이
[문제18]모의고사-Level1
[문제19]카펫-Level2
[문제20]수식최대화-Level2
[문제21]소수찾기-Level2
[문제22]불량사용자-Level3

7장.정렬

7.1정렬이란?
_7.1.1정렬기준잡기
_7.1.2정렬효율높이기
7.2정렬하기
_7.2.1기본기준사용하기
[문제23]K번째수-Level1
[문제24]두개뽑아서더하기-Level1
[문제25]H-Index-Level2
_7.2.2직접기준정하기
[문제26]문자열내림차순으로배치하기
[문제27]문자열내마음대로정렬하기-Level1
[문제28]가장큰수-Level2
[문제29]메뉴리뉴얼-Level2

8장.이진탐색

8.1이진탐색이란?
_8.1.1이진탐색이갖는이점
_8.1.2이진탐색을사용할수있는조건
8.2탐색효율높이기
_8.2.1분할정복
_8.2.2정렬기준정하기
8.3자바의이진탐색메서드
8.4다양한문제풀이
[문제30]순위검색-Level2
[문제31]입국심사-Level3
[문제32]징검다리-Level4

9장.해시

9.1해시란?
_9.1.1해시테이블
_9.1.2해시의시간복잡도
9.2다양한문제풀이
[문제33]평행-Level0
[문제34]중복된문자제거-Level0
[문제35]A로B만들기-Level0
[문제36]없는숫자더하기-Level1
[문제37]완주하지못한선수-Level1

10장.동적프로그래밍

10.1동적으로연산줄이기
_10.1.1완전탐색의문제점
_10.1.2‘동적프로그래밍’의핵심,메모이제이션
_10.1.3동적프로그래밍의조건
_10.1.4번외:순차누적으로구현해보기
10.2다양한문제풀이
[문제38]피보나치수-Level2
[문제39]정수삼각형-Level3
[문제40]등굣길-Level3
[문제41]사칙연산-Level4

11장.자주등장하는자료구조

11.1스택과큐
_11.1.1스택
[문제42]올바른괄호-Level2
[문제43]괄호회전하기-Level2
[문제44]주식가격-Level2
_11.1.2큐
[문제45]기능개발-Level2
[문제46]다리를지나는트럭-Level2
_11.1.3덱
11.2그래프와트리
_11.2.1그래프
[문제47]순위-Level3
[문제48]방의개수-Level5
_11.2.2트리와이진트리
[문제49]길찾기게임-Level3
11.3잊을만하면나오는자료구조
_11.3.1우선순위큐467
[문제50]이중우선순위큐-Level3441
[문제51]디스크컨트롤러-Level3
_11.3.2투포인터473
[문제52]보석쇼핑-Level3
_11.3.3유니온파인드
[문제53]섬연결하기-Level3
[문제54]호텔방배정-Level4
_11.3.4트라이
[문제55]가사검색-Level4

12장.구현

12.1주의해야할점
_12.1.1구현이어려운문제인이유
_12.1.2디버깅빨리하기
12.2문제에서이야기하는대로만들기
_12.2.1규칙찾아보기
_12.2.2다양한문제풀이
[문제56]스킬트리-Level2
[문제57]키패드누르기-Level1
12.3완전탐색기반으로풀기
_12.3.1깊이우선탐색(DFS)
_12.3.2DFS:스택
[문제58]타깃넘버-Level2
[문제59]네트워크-Level3
_12.3.3너비우선탐색(BFS)
_12.3.4BFS:큐
[문제60]단어변환-Level3
[문제61]게임맵최단거리-Level3
12.4그리디알고리즘
_12.4.1현재상황에서최선
_12.4.2결과적으로최선인가
_12.4.3다양한문제풀이
[문제62]체육복-Level1
[문제63]큰수만들기-Level2
[문제64]단속카메라-Level3

13장.도전:카카오2022블라인드테스트

[문제65]신고결과받기-Level1
[문제66]k진수에서소수개수구하기-Level2
[문제67]주차요금계산-Level2
[문제68]양궁대회-Level2
[문제69]양과늑대-Level3
[문제70]파괴되지않은건물-Level3
[문제71]사라지는발판-Level3

14장.코딩전문역량인증시험,PCCP모의고사

14.1PCCP모의고사1회
[문제72]외톨이알파벳-Level1
[문제73]체육대회-Level2
[문제74]유전법칙-Level2
[문제75]운영체제-Level3
14.2PCCP모의고사2회
[문제76]실습용로봇-Level1
[문제77]신입사원교육-Level2
[문제78]카페확장-Level2
[문제79]보물지도-Level3

출판사 서평

문제를분석하고,요구조건을체크하고,
다양한접근법으로설계한내용을구현하며
문제를푸는생각의흐름을완성하세요!

1.다수의코딩테스트를진행한프로그래머스의기출문제선별!

누적응시자수77만,누적테스트수2만,기업고객1500개이상인프로그래머스의노하우가담긴문제중79개를선별하여담았습니다.

2.'문제분석→요구조건파악→접근법선택→단계별구현'으로학습!

실제코딩테스트의문제를푸는과정을그대로경험할수있게구성했으며,문제를푸는생각의흐름을완성할수있게도와줍니다.

3.다양한풀이법으로접근!

문제의해답은하나가아니라여러가지입니다.책에서는기본문제풀이외에핵심개념및다양한풀이를함께살펴보며,방금푼문제를100%내것으로만들수있습니다.

4.자바스러운문제풀이와해결기법!

자바언어에맞는문제풀이와해결법으로설명합니다.나아가자바에대해좀더깊이있게이해하고,프로그래밍하는방향과과정을살펴볼수있습니다.

5.카카오블라인드테스트와PCCP모의고사2회수록!

카카오2022블라인드테스트에출제된문제와PCCP모의고사2회분의문제를책에서배운내용들을이용해풀어보면서실전감각을키울수있습니다.

[베타후기]

개발자는끊임없이공부해야하는직업이라고생각합니다.그중알고리즘은매우중요한요소중하나라고생각하는데요.이책을읽으면서기본기를다시한번다지는기회가되었습니다.특히저도코딩테스트를여러번봤는데,시험에나왔던유형과비슷한문제들이있어다시금풀어보는재미가있었습니다.코딩테스트를준비하면서필요한설명과코드가많이들어있어취업을준비하는분들에게많은도움이될것같습니다.
노승주|프런트엔드개발자

코딩테스트에서출제되는다양한문제유형을다루며,문제를풀수있는기본개념을먼저설명해주는책입니다.다소어려울수있는내용도기본원리와개념에대해이해하기쉽게설명하고있습니다.코딩문제를단순히풀기만하는것이아니라다른코딩책에서많이놓치고있는최적의시간복잡도와공간복잡도까지커버하기에실전코딩테스트준비에가장적합한책이라고생각됩니다.코딩테스트로취업을준비하는학생,이직을준비하는직장인에게강력히추천합니다.
이정우|구글소프트웨어엔지니어

코딩테스트를준비하고있고주로자바를사용한다면추천하고싶은책입니다.문제풀이에는다양한해법들이있습니다.하지만테스트와대회에서중요한것은그런해법을적용했을때문제를풀수있는지를빨리깨닫는것이라고생각합니다.풀이를고민하지않고무작정잘못된방법으로코딩하는것은해당문제를포기하는것보다더안좋은결과를가져다주기때문입니다.이책을읽고나면일단코드작성부터하는PS초보에서,문제를머리로해결한후코딩을시작하는고수가되어있는자신을발견하게될것입니다.또단순한문제풀이책이아니라자바식으로생각하는법을배울수있는책이기때문에자바로취직을준비하고있다면꼭한번읽어보길추천합니다.
최현경|카카오게임즈백엔드엔지니어

자바다운풀이방법이궁금할때읽어보면좋은책입니다.문제유형별로활용가능한기본라이브러리를잘설명하기때문에빠른시간내에구현해야하는코딩테스트에많은도움이될것입니다.특히찾아보지않으면놓치기쉬운기본라이브러리의시간복잡도를설명해주는부분이좋았습니다.이를통해자신이작성한코드의시간복잡도를좀더정교하게계산하여효율적인알고리즘을설계할수있을것입니다.
채상욱|삼성전자개발자

기존에본책들은실제코딩테스트와동떨어진느낌이었습니다.첫째,내용은좋으나커버리지가낮고쉬운문제로구성되어있었습니다.둘째,competition에맞추어실제코딩테스트에서는나오지않는문제를다루는경우가대부분이었습니다.또백엔드개발자의경우주언어가자바인데,자바에맞는문제풀이법이없다는점이늘아쉬웠습니다.이책은실제코딩테스트에나오는많은분량의문제와그에맞는자바식문제풀이전략과해결기법을다룹니다.자바로코딩테스트를준비하는사람에게좋은이정표가될것이라고생각합니다.
최범석|네이버클라우드소프트웨어엔지니어

추천사

개발자에대한역량을평가할때가장광범위하게쓰이는기준이코딩테스트입니다.가장기본이되는역량이며누구에게나필요하기때문입니다.저는종종코딩테스트의필요성을설명할때특수부대선발과정을예로드는데요.뛰어난특수부대원을선발하는과정에는대부분장거리달리기를통한체력평가가들어갑니다.물론체력외에도다양한군사적기술과리더십등이필요하지만장거리를뛸수없는군인이라면뛰어난특수부대원이될수없겠지요.개발자도마찬가지입니다.개발자에게요구되는다양한역량이있지만코딩테스트를통과할수있는수준의기본기가없다면뛰어난개발자가되기는어렵습니다.여기서한가지주의할점이있는데요.특수부대원의선발과정에장거리달리기가있다고해서마라톤선수가가장뛰어난특수부대원이될수있는게아니듯이,코딩테스트를잘한다고해서가장뛰어난개발자가되는것은아니라는점입니다.

『취업과이직을위한프로그래머스코딩테스트문제풀이전략:자바편』에는너무쉽지도,불필요하게어렵지도않은적절한수준의문제들이포함되어있습니다.그리고그문제들을해결하는데필요한이론과각문제에대한올바른접근방법을단계별로잘제시하고있어인상적입니다.어떤개념들은글만으로이해하기어려운경우가있는데,설명과함께나와있는친절한그림과함께보면더욱쉽게이해할수있을겁니다.코딩테스트라는개발자의기초체력을키우려는여러분에게이책이학습의좋은동반자가되기를기대합니다.

-정두식(Programmers㈜그렙CSO)