코딩 테스트 합격자 되기 : 자바 편
저자

김희성,박경록

저자:김희성

현42dot백엔드개발자.이전에는삼성SDS에서소프트웨어개발자,쿠팡에서풀스택개발자로근무했다.특히삼성SDS시절에는사내SW역량테스트강사로활약했다.귀찮은거싫어하고집에서자는게가장좋은백엔드개발자다.어려운문제와맞닥뜨렸을때더욱불타오르는타입.새벽시간에코드짜는걸좋아하며주말에밤새코딩하는일을즐기는ESTJ.



저자:박경록

매일퇴근과점심메뉴를고민하는9년차시스템S/W개발자입니다.수학,알고리즘같은실생활과가깝고도먼학문을좋아하고,명확하지만개선여지가있는문제들에대해논의하고사고를개선해나가는과정을좋아합니다.

목차


[첫째마당:코딩테스트사전준비]

00장코딩테스트를준비하기전에
__00-1합격자가꼭되고싶은여러분
__타인의풀이를보면사고를넓힐수있다
__나만의테스트케이스를추가하는건좋은알고리즘을생각할때도움이된다
__00-2아는것과모르는것을명확하게
__첫번째,기록하라
__두번째,시험보듯공부하라
__세번째,짧은시간공부해서는절대코딩테스트를통과할수없다
__네번째,나만의언어로요약하라

01장코딩테스트효율적으로준비하기
__01-1언어선택하기
__01-2문제분석연습하기
__첫번째,문제를쪼개서분석하라
__두번째,제약사항을파악하고테스트케이스를추가하라
__세번째,입력값을분석하라
__네번째,그리디하게접근할때는근거를명확히해라
__다섯번째,데이터흐름이나구성을파악하라
__01-3의사코드로설계하는연습하기
__첫번째,세부구현이아닌동작중심으로작성하라
__두번째,문제해결순서로작성하라
__세번째,충분히테스트하라

02장프로그래머스완벽활용가이드
__02-1프로그래머스는어떤곳인가요?
__02-2프로그래머스활용가이드
__프로그래머스살펴보기
__문제풀이과정살펴보기

03장알고리즘의효율분석
__03-1시간복잡도란?
__1차원배열검색하기
__알고리즘수행시간을측정하는방법
__최악의경우시간복잡도를표현하는빅오표기법
__시간복잡도를코딩테스트에활용하는방법
__03-2시간복잡도계산해보기
__별찍기문제
__박테리아수명문제

04장코딩테스트필수문법
__04-1프리미티브타입과레퍼런스타입
__정수형
__부동소수형
__04-2컬렉션프레임워크
__배열
__리스트
__해시맵
__문자열
__04-3메서드
__메서드정의
__메서드호출
__람다식
__04-4코딩테스트코드구현노하우
__조기반환
__보호구문
__제네릭

[둘째마당:코딩테스트완전정복]

05장배열
__05-1배열개념
__배열선언
__배열과차원
__05-2ArrayList사용법
__ArrayList에데이터추가
__05-3ArrayList의효율성
__배열연산의시간복잡도
__배열을선택할때고려할점
__05-4몸풀기문제
__[문제01]배열정렬하기★
__[문제02]배열제어하기★★
__05-5합격자가되는모의테스트
__[문제03]두개뽑아서더하기★
__[문제04]모의고사★
__[문제05]행렬의곱셈★
__[문제06]실패율★★
__[문제07]방문길이★★

06장스택
__06-1스택개념
__스택의동작원리이해하기
__06-2스택의정의
__스택의ADT
__Stack클래스사용하기
__06-3몸풀기문제
__[문제08]올바른괄호★★
__[문제09]10진수를2진수로변환하기★
__06-4합격자가되는모의테스트
__[문제10]괄호회전하기★
__[문제11]짝지어제거하기★
__[문제12]주식가격★★
__[문제13]크레인인형뽑기게임★★
__[문제14]표편집★★★★★

07장큐
__07-1큐의개념
__큐에서데이터가이동하는과정살펴보기
__큐의특성을활용하는분야
__큐의ADT
__07-2몸풀기문제
__[문제15]요세푸스문제★★
__07-3합격자가되는모의테스트
__[문제16]기능개발★★
__[문제17]카드뭉치★★

08장해시
__08-1해시의개념
__해시자세히알아보기
__해시의특성을활용하는분야
__08-2해시함수
__해시함수를구현할때고려할내용
__자주사용하는해시함수알아보기
__08-3충돌처리
__체이닝으로처리하기
__개방주소법으로처리하기
__해시맵
__HashMap클래스사용하기
__08-4몸풀기문제
__[문제18]두개의수로특정값만들기★
__08-5합격자가되는모의테스트
__[문제19]완주하지못한선수★
__[문제20]할인행사★★
__[문제21]오픈채팅방★★
__[문제22]베스트앨범★★
__[문제23]신고결과받기★★
__[문제24]메뉴리뉴얼★★★

09장트리
__09-1트리개념
__나무를거꾸로뒤집어놓은모양의트리
__09-2이진트리표현하기
__배열로표현하기
__이진트리순회하기
__포인터로표현하기
__인접리스트로표현하기
__09-3이진트리탐색하기
__이진탐색트리구축하기
__이진탐색트리탐색하기
__이진탐색트리와배열탐색의효율비교
__09-4몸풀기문제
__[문제25]트리순회★
__09-5합격자가되는모의테스트
__[문제26]예상대진표★
__[문제27]다단계칫솔판매★★
__[문제28]양과늑대★★★★★
__[문제29]길찾기게임★★★★

10장집합
__10-1집합과상호배타적집합의개념
__집합의개념
__상호배타적집합의특성을활용하는분야
__10-2집합의연산
__배열을활용한트리로집합표현하기
__유니온-파인드알고리즘
__10-3몸풀기문제
[문제30]간단한유니온-파인드알고리즘구현하기★★
__10-4합격자가되는모의테스트
__[문제31]폰켓몬★
__[문제32]영어끝말잇기★
__[문제33]섬연결하기★★★

11장그래프
__11-1그래프의개념
__그래프용어정리
__그래프의특징과종류
__그래프구현
__11-2그래프탐색
__깊이우선탐색
__너비우선탐색
__깊이우선탐색과너비우선탐색비교
__11-3그래프최단경로구하기
__다익스트라알고리즘
__벨만-포드알고리즘
__11-4몸풀기문제
__[문제34]깊이우선탐색순회★
__[문제35]너비우선탐색순회★
__[문제36]다익스트라알고리즘★★★
__11-5합격자가되는모의테스트
__[문제37]게임맵최단거리★★
__[문제38]네트워크★★
__[문제39]미로탈출★★
__[문제40]배달★★★
__[문제41]경주로건설★★★★★
__[문제42]전력망을둘로나누기★★

12장백트래킹
__12-1백트래킹과백트래킹알고리즘개념
__백트래킹이란?
__백트래킹알고리즘이란?
__유망함수란?
__백트래킹알고리즘문제에적용해보기
__N-퀸문제
__12-2몸풀기문제
__[문제43]1부터N까지숫자중합이10이되는조합구하기★
__[문제44]스도쿠퍼즐★★★
__12-3합격자가되는모의테스트
__[문제45]피로도★
__[문제46]N-퀸★
__[문제47]양궁대회★★
__[문제48]외벽점검★★★★★
__[문제49]사라지는발판★★★★★

13장정렬
__13-1정렬개념
__정렬이필요한이유
__삽입정렬
__병합정렬
__힙정렬
__우선순위큐
__계수정렬
__위상정렬
__13-2몸풀기문제
__[문제50]계수정렬구현하기★
__[문제51]정렬이완료된두배열합치기★
__13-3합격자가되는모의테스트
__[문제52]문자열내마음대로정렬하기★
__[문제53]정수내림차순으로배치하기★
__[문제54]K번째수★
__[문제55]가장큰수★★★
__[문제56]튜플★★
__[문제57]지형이동★★★★
__[문제58]전화번호목록★★

14장시뮬레이션
__14-1시뮬레이션문제풀이노하우
__시뮬레이션문제를푸는방법
__행렬연산
__좌표연산
__대칭,회전연산
__14-2몸풀기문제
__[문제59]배열회전하기★★
__[문제60]두행렬을곱한후전치행렬만들기★
__[문제61]달팽이수열만들기★★
__14-3합격자가되는모의테스트
__[문제62]이진변환반복하기★★
__[문제63]롤케이크자르기★★
__[문제64]카펫★★
__[문제65]점프와순간이동★★
__[문제66]캐릭터의좌표★★

15장동적계획법
__15-1동적계획법개념
__점화식세우기와동적계획법
__재귀호출의횟수를줄여주는메모이제이션
__최장증가부분수열
__최장공통부분수열
__15-2몸풀기문제
__[문제67]LCS길이계산하기★★★
__[문제68]LIS길이계산하기★★★
__[문제69]조약돌문제★★★
__15-3합격자가되는모의테스트
__[문제70]피보나치수★
__[문제71]2×n타일링★
__[문제72]정수삼각형★★
__[문제73]땅따먹기★★
__[문제74]도둑질★★★★★
__[문제75]가장큰정사각형찾기★★★
__[문제76]단어퍼즐★★★★

16장그리디
__16-1그리디개념
__그리디알고리즘으로거스름돈내어주기
__그리디알고리즘이최적해를보장하려면?
__16-2최소신장트리
__신장트리란?
__최소신장트리란?
__16-3배낭문제
__짐을쪼갤수있는부분배낭문제
__짐을쪼갤수없는0/1배낭문제
__16-4몸풀기문제
__[문제77]거스름돈주기★★
__[문제78]부분배낭문제★★
__16-5합격자가되는모의테스트
__[문제79]예산★
__[문제80]구명보트★
__[문제81]귤고르기★★
__[문제82]기지국설치★★


[부록1:모의고사]

_01회모의고사
__[문제83]미로탈출명령어
__[문제84]택배배달과수거하기
__[문제85]개인정보수집유효기간
_02회모의고사
__[문제86]110옮기기
__[문제87]쿼드압축후개수세기
__[문제88]없는숫자더하기

_03회모의고사
__[문제89]불량사용자
__[문제90]k진수에서소수개수구하기
__[문제91]거리두기확인하기

_04회모의고사
__[문제92]코딩테스트공부
__[문제93]두큐합같게만들기
__[문제94]숫자게임

_05회모의고사
__[문제95]보석쇼핑
__[문제96]파괴되지않은건물
__[문제97]로또의최고순위와최저순위

[부록2:엄친아요약노트]

출판사 서평

★빈출문제97개면코딩테스트합격할수있어요!
★자료구조,알고리즘이론개념도꽉챙겨주는책으로면접까지대비해요!

코딩테스트는IT기업에입사하려면꼭넘어야하는허들입니다.코딩테스트준비는무작정많은문제를푼다고합격할수있을까요?저자는아니라고말합니다.대부분의코딩테스트는기업이응시자에게요구하는기준에맞춰문제를구성하게되어있습니다.그러니그기준에맞는빈출문제로전략적인코테대비를하는것이훨씬합격에유리하죠.《코딩테스트합격자되기》(자바편)은프로그래머스를통해기업코딩테스트에출제되었던문제97개를카테고리별로나누고,빈출순서로배치하였습니다.한마디로여러분의코테합격을위한문제들을유형,중요순서로가득채운책이죠.또한여러분이코테시험전에꼭알아야할코테공부마인드셋부터자바문법돌아보기,자료구조·알고리즘이론까지꽉꽉채웠습니다.단순히문제만풀어주는것이아니라원리를제대로이해할수있게해주죠.분명면접에도큰도움이될것입니다.

★슈도코드를쓰고,그림을그리고,시간복잡도를분석하세요!
★코드도중요하지만문제를풀어나가는사고력이더중요합니다!

저자는코드도중요하지만문제를풀기위해고민하는과정이더중요하다고이야기합니다.문제해결단위중심으로슈도코드를작성해서시간낭비를줄이고,그림을그려문제의핵심을더쉽게파악하고,시간복잡도를미리생각해서불필요한알고리즘을제외하고적절한알고리즘을선택하라고이야기하죠.다만처음부터여러분이이렇게하기는쉽지않습니다.그래서본문은슈도코드보기?그림으로생각하기?시간복잡도고려하기의구성으로쓰여있습니다.단순히문제만풀어주는책이아닙니다.올바른코딩테스트습관을들여합격률을올려주는책입니다.

★독자여러분의학습을1000%지원합니다!
★저자운영네이버카페,오픈카카오톡채팅방,깃허브+묘공단으로함께공부하세요!
〈지원1〉네이버카페(매일알고리즘)
______cafe.naver.com/dremdeveloper
〈지원2〉오픈카카오톡채팅방(연중무휴24시간운영중)
______open.kakao.com/o/gQOVhU3f
〈지원3〉깃허브(스터디용추가자료+100%본문정답코드)
______github.com/retrogemHK/codingtest_java
〈지원4〉골든래빗스터디지원!묘공단(내돈내산공부하면당근마일제공)
______goldenrabbit.co.kr/묘공단

★200%효과를내는학습구성을소개합니다!
이책의각장은이론,몸풀기문제,실전모의테스트문제로구성되어있습니다.이론을공부하며천천히걷기시작해서배운내용을확인하기위한몸풀기문제를푼다음,마지막으로는실전모의테스트문제로마무리하세요.그러면어느새코딩테스트에합격한여러분을발견할수있을것입니다.

[01단계]이론탄탄하게다지기
__각장의처음은이론을풍성한그림과함께친절한설명으로공부합니다.
[02단계]연습문제로워밍업
__그런다음에는저자선생님이직접출제한몸풀기문제로배운내용을문제에적용해봅니다.
[03단계]모의테스트로마무리
__코딩테스트실전풀이죠!마지막으로실전모의테스트문제로실전감각을익히고노하우를전수받으세요.
[보너스단계]엄친아손노트요약집
__엄친아손노트만분리해가볍게가지고다니며공부한내용을정리해보세요.급할때일수록유용합니다.

★실전에서떨지말고〈실전모의고사〉로실전처럼준비하세요!
평소에잘풀리던문제들…막상시험장에들어가니실력발휘가잘되지않아서아쉬웠던적이있나요?저자선생님은‘시험도연습해야한다’고말합니다.이책은신입사원수준의〈실전모의고사〉를5회분으로준비했습니다.각테스트는제대로된연습을할수있도록3시간안에풀수있는3개의문제로구성했습니다.시계를옆에두고테스트에임해보세요.철저한시험연습은여러분의합격률을크게올려줄것입니다.

★리마인드하고싶을때꺼내보면좋은〈엄친아손노트〉떼어북!
시험은항상긴장되죠.그래서시험전에보면좋을무언가가필요한데요,책을들고가도좋지만두꺼운책을시험전에모두읽는건어려운일입니다.그래서리마인드가필요할때보면딱좋을요약집을준비했습니다.떼어북으로제공하는〈엄친아손노트〉요약집에책의핵심내용을꾹꾹눌러담았습니다.시험전에보면리마인드에큰도움이될것이라생각합니다.