본문으로 바로가기
평면표지(2D 앞표지)
입체표지(3D 표지)
2D 뒤표지

코딩 테스트 합격자 되기(자바스크립트 편)

자료구조, 알고리즘, 빈출 100 문제로 대비하는 코테 풀 패키지(모의고사, 엄친아 손노트, 온라인 학습 지원 제공)


  • ISBN-13
    979-11-91905-88-5 (93000)
  • 출판사 / 임프린트
    골든래빗(주) / 골든래빗(주)
  • 정가
    42,000 원 확정정가
  • 발행일
    2024-07-01
  • 출간상태
    출간
  • 저자
    이선협 , 박경록
  • 번역
    -
  • 메인주제어
    알고리즘과 데이터구조
  • 추가주제어
    컴퓨터프로그래밍 / 소프트웨어공학 , 프로그래밍기법 , 프로그래밍 및 스크립트언어 / 일반 , 서버 , 클라이언트서버네트워킹
  • 키워드
    #알고리즘과 데이터구조 #컴퓨터프로그래밍 / 소프트웨어공학 #프로그래밍기법 #프로그래밍 및 스크립트언어 / 일반 #서버 #클라이언트서버네트워킹 #대학교재 #공학계열 #컴퓨터 #자바스크립트
  • 도서유형
    종이책, 무선제본
  • 대상연령
    모든 연령, 성인 일반 단행본
  • 도서상세정보
    183 * 235 mm, 808 Page

책소개

★ 코딩 테스트 합격자가 되는 가장 확실한 방법!

★ 프로그래머스 제공, 전문가가 모여 엄선한 빈출 100 문제로 철저하게 대비하세요!


신입 사원 코딩 테스트를 준비하고 계신가요? 코딩 테스트는 문제만 열심히 푼다고 통과할 수 없습니다. 시험은 전략적으로 준비해야 합니다. 《코딩 테스트 합격자 되기》(자바스크립트 편)은 신입 사원 코딩 테스트 합격에 딱 맞는 빈출문제를 선정하고 풀이하기 위해 저자와 전문 교강사진이 오랜 시간을 들여 고민해 만들었습니다. 문제의 맥을 관통하는 자료구조와 알고리즘, 시간 복잡도 분석까지 완벽하게 풀이했죠! 모든 내용은 친절한 설명에 풍부한 그림을 더해 말끔하게 이해할 수 있도록 했습니다. 코딩 테스트뿐만 아니라 그 다음에 있을 면접까지 대비할 수 있을 것입니다. 이 책과 함께라면 합격은 여러분의 것입니다.

목차

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


 

00장 코딩 테스트를 준비하기 전에

__00-1 합격자가 꼭 되고 싶은 여러분

__타인의 풀이를 보면 사고를 넓힐 수 있다

__나만의 테스트 케이스를 추가하는 건 좋은 알고리즘을 생각할 때 도움이 된다

__00-2 아는 것과 모르는 것을 명확하게

__첫 번째, 기록하라 

__두 번째, 시험 보듯 공부하라 

__세 번째, 짧은 시간 공부해서는 절대 코딩 테스트를 통과할 수 없다 

__네 번째, 나만의 언어로 요약하라

__00-3 자료구조와 알고리즘, 그리고 코딩 테스트

__자료구조와 알고리즘이란? 

__자료구조와 알고리즘은 세상을 전산화하는 방법입니다 

__코딩 테스트는 업무에 도움이 되는가? 



 

01장 코딩 테스트 효율적으로 준비하기

__01-1 언어 선택하기

__01-2 문제 분석 연습하기

__첫 번째, 문제를 쪼개서 분석하라 

__두 번째, 제약 사항을 파악하고 테스트 케이스를 추가하라 

__세 번째, 입력값을 분석하라 

__네 번째, 핵심 키워드를 파악하라

__다섯 번째, 데이터 흐름이나 구성을 파악하라 

__01-3 의사 코드로 설계하는 연습하기

__첫 번째, 세부 구현이 아닌 동작 중심으로 작성하라

__두 번째, 문제 해결 순서로 작성하라 

__세 번째, 충분히 테스트하라 


 

02장 프로그래머스 완벽 활용 가이드

__02-1 프로그래머스는 어떤 곳인가요?

__02-2 프로그래머스 활용 가이드

__프로그래머스 살펴보기

__문제 풀이 과정 살펴보기

__02-3 문제 풀이 전 준비사항


 

03장 알고리즘의 효율 분석

__03-1 시간 복잡도란?

__1차원 배열 검색하기

__알고리즘 수행 시간을 측정하는 방법 

__최악의 경우 시간 복잡도를 표현하는 빅오 표기법 

__시간 복잡도를 코딩 테스트에 활용하는 방법

__03-2 시간 복잡도 계산해보기

__별 찍기 문제

__박테리아 수명 문제


 

04장 코딩 테스트 필수 문법

__04-1 빌트인 데이터 타입 

__숫자 

__문자열 

__그 외 타입 

04-2 참조 타입 

__원시 타입의 동작 방식 알아보기 

__참조 타입의 동작 방식 알아보기 

__오브젝트 

__배열 

04-3 함수 

04-4 코딩 테스트 코드 구현 노하우 

__구조 분해 할당 

__값 교환하기 

__비구조화 할당 

__스프레드 연산자 

__배열 내 같은 요소 제거하기 

__&&와 || 연산자로 조건문 대체하기 


 

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


 

05장 배열

__05-1 배열 개념

__배열 선언 

__배열과 차원 

__05-2 배열의 효율성

__배열 연산의 시간 복잡도

__배열을 선택할 때 고려할 점

__05-3 몸풀기 문제

__[문제 01] 배열 정렬하기★ 

__[문제 02] 배열 제어하기★★

__05-4 합격자가 되는 모의 테스트

__[문제 03] 두 수를 뽑아서 더하기★

__[문제 04] 모의고사★ 

__[문제 05] 행렬의 곱셈★ 

__[문제 06] 실패율★★ 

__[문제 07] 방문 길이★★


 

06장 스택 

__06-1 스택 개념

__스택의 동작 원리 이해하기 

__06-2 스택의 정의 

__스택의 ADT 

__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 충돌 처리 

__체이닝으로 처리하기 

__개방 주소법으로 처리하기 

__08-4 몸풀기 문제

__[문제 18] 두 개의 수로 특정값 만들기★ 

__[문제 19] 문자열 해싱을 이용한 검색 함수 만들기★★

__08-5 합격자가 되는 모의 테스트 

__[문제 20] 완주하지 못한 선수★

__[문제 21] 영어 끝말잇기★

__[문제 22] 전화번호 목록★★

__[문제 23] 할인 행사★★ 

__[문제 24] 오픈 채팅방★★ 

__[문제 25] 베스트 앨범★★ 

__[문제 26] 신고 결과 받기★★ 

__[문제 27] 메뉴 리뉴얼★★★ 


 

09장 트리

__09-1 트리 개념

__나무를 거꾸로 뒤집어 놓은 모양의 트리

__09-2 이진 트리 표현하기

__배열로 표현하기

__이진 트리 순회하기

__포인터로 표현하기 

__인접 리스트로 표현하기 

__09-3 이진 트리 탐색하기

__이진 탐색 트리 구축하기

__이진 탐색 트리 탐색하기 

__이진 탐색 트리와 배열 탐색의 효율 비교 

__09-4 몸풀기 문제

__[문제 28] 트리 순회★ 

__[문제 29] 이진 탐색 트리 구현★ 

__09-5 합격자가 되는 모의 테스트

__[문제 30] 예상 대진표★

__[문제 31] 다단계 칫솔 판매★★

__[문제 32] 길 찾기 게임★★★★


 

10장 집합 

__10-1 집합과 상호배타적 집합의 개념 

__집합의 개념 

__상호배타적 집합의 특성을 활용하는 분야 

__10-2 집합의 연산

__배열을 활용한 트리로 집합 표현하기 

__유니온-파인드 알고리즘 

__10-3 몸풀기 문제

__[문제 33] 간단한 유니온-파인드 알고리즘 구현하기★★ 

__10-4 합격자가 되는 모의 테스트 

__[문제 34] 폰켓몬★

__[문제 35] 섬 연결하기★★★ 


 

11장 그래프

__11-1 그래프의 개념 

__그래프 용어 정리 

__그래프의 특징과 종류 

__그래프 구현 

__11-2 그래프 탐색 

__깊이 우선 탐색 

__너비 우선 탐색 

__깊이 우선 탐색과 너비 우선 탐색 비교 

__11-3 그래프 최단 경로 구하기 

__다익스트라 알고리즘 

__벨만-포드 알고리즘 

__11-4 몸풀기 문제 

__[문제 36] 깊이 우선 탐색 순회★ 

__[문제 37] 너비 우선 탐색 순회★ 

__[문제 38] 다익스트라 알고리즘★★★ 

__[문제 39] 벨만-포드 알고리즘★★★

__11-5 합격자가 되는 모의 테스트

__[문제 40] 미로 탈출★★

__[문제 41] 게임 맵 최단 거리★★

__[문제 42] 네트워크★★

__[문제 43] 양과 늑대★★★★★ 

__[문제 44] 배달★★★ 

__[문제 45] 경주로 건설★★★★★ 

__[문제 46] 전력망을 둘로 나누기★★ 


 

12장 백트래킹

__12-1 백트래킹과 백트래킹 알고리즘 개념 

__백트래킹이란? 

__백트래킹 알고리즘이란? 

__유망 함수란? 

__백트래킹 알고리즘 문제에 적용해보기 

__N-퀸 문제 

__12-2 몸풀기 문제 

__[문제 47] 1부터 N까지 숫자 중 합이 10이 되는 조합 구하기★ 

__[문제 48] 스도쿠 퍼즐★★★ 

__12-3 합격자가 되는 모의 테스트 

__[문제 49] 피로도★ 

__[문제 50] N-퀸★

__[문제 51] 양궁 대회★★

__[문제 52] 외벽 점검★★★★★

__[문제 53] 사라지는 발판★★★★★


 

13장 정렬

__13-1 정렬 개념 

__정렬이 필요한 이유 

__삽입 정렬 

__병합 정렬 

__힙 정렬 

__우선순위 큐 

__계수 정렬 

__위상 정렬 

__13-2 몸풀기 문제 

__[문제 54] 계수 정렬 구현하기★ 

__[문제 55] 정렬이 완료된 두 배열 합치기★ 

__13-3 합격자가 되는 모의 테스트 

__[문제 56] 문자열 내 마음대로 정렬하기★ 

__[문제 57] 정수 내림차순으로 배치하기★ 

__[문제 58] K번째 수★ 

__[문제 59] 가장 큰 수★★★ 

__[문제 60] 튜플★★ 

__[문제 61] 지형 이동★★★★ 


 

14장 시뮬레이션

__14-1 시뮬레이션 문제 풀이 노하우 

__시뮬레이션 문제를 푸는 방법 

__행렬 연산 

__좌표 연산 

__대칭, 회전 연산 

__14-2 몸풀기 문제 

__[문제 62] 배열 회전하기★★ 

__[문제 63] 두 행렬을 곱한 후 전치 행렬 만들기★ 

__[문제 64] 달팽이 수열 만들기★★ 

__14-3 합격자가 되는 모의 테스트 

__[문제 65] 이진 변환★★ 

__[문제 66] 롤케이크 자르기★★ 

__[문제 67] 카펫★★ 

__[문제 68] 점프와 순간 이동★★ 

__[문제 69] 캐릭터의 좌표★★ 


 

15장 동적 계획법

__15-1 동적 계획법 개념 

__점화식 세우기와 동적 계획법 

__재귀 호출의 횟수를 줄여주는 메모이제이션 

__최장 증가 부분 수열 

__최장 공통 부분 수열 

__15-2 몸풀기 문제 

__[문제 70] LCS 길이 계산하기★★★ 

__[문제 71] LIS 길이 계산하기★★★ 

__[문제 72] 조약돌 문제★★★ 

__15-3 합격자가 되는 모의 테스트 

__[문제 73] 피보나치 수★ 

__[문제 74] 2 × n 타일링★ 

__[문제 75] 정수 삼각형★★ 

__[문제 76] 땅따먹기★★ 

__[문제 77] 도둑질★★★★★ 

__[문제 78] 가장 큰 정사각형 찾기★★★ 

__[문제 79] 단어 퍼즐★★★★ 


 

16장 그리디

__16-1 그리디 개념

__그리디 알고리즘으로 거스름돈 내어주기 

__그리디 알고리즘이 최적해를 보장하려면? 

__16-2 최소 신장 트리 

__신장 트리란? 

__최소 신장 트리란? 

__16-3 배낭 문제 

__짐을 쪼갤 수 있는 부분 배낭 문제 

__짐을 쪼갤 수 없는 0/1 배낭 문제 

__16-4 몸풀기 문제 

__[문제 80] 거스름돈 주기★★ 

__[문제 81] 부분 배낭 문제★★ 

__16-5 합격자가 되는 모의 테스트 

__[문제 82] 예산★ 

__[문제 83] 구명보트★ 

__[문제 84] 귤 고르기★★ 

__[문제 85] 기지국 설치★★ 



 

[부록 1 : 모의고사]


 

_01회 모의고사

__[문제 86] 미로 탈출 명령어 

__[문제 87] 택배 배달과 수거하기 

__[문제 88] 개인 정보 수집 유효기간 

_02회 모의고사

__[문제 89] 110 옮기기 

__[문제 90] 쿼드 압축 후 개수 세기 

__[문제 91] 없는 숫자 더하기 

_03회 모의고사

__[문제 92] 불량 사용자 

__[문제 93] k진수에서 소수 개수 구하기 

__[문제 94] 거리두기 확인하기 

_04회 모의고사

__[문제 95] 코딩 테스트 공부 

__[문제 96] 두 큐 합 같게 만들기 

__[문제 97] 숫자 게임 

_05회 모의고사

__[문제 98] 보석 쇼핑 

__[문제 99] 파괴되지 않은 건물 

__[문제 100] 로또의 최고 순위와 최저 순위 

본문인용

★ 빈출문제 100개면 코딩 테스트 합격할 수 있어요!

★ 자료구조, 알고리즘 이론 개념도 꽉 챙겨주는 책으로 면접까지 대비해요!


 

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


 

★ 슈도 코드를 쓰고, 그림을 그리고, 시간 복잡도를 분석하세요!

★ 코드도 중요하지만 문제를 풀어나가는 사고력이 더 중요합니다!


 

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


 

★ 독자 여러분의 학습을 1000% 지원합니다!

★ 저자 운영 네이버 카페, 오픈 카카오톡 채팅방, 깃허브 + 묘공단으로 함께 공부하세요!

〈지원 1〉 네이버 카페(매일 알고리즘)
______ cafe.naver.com/dremdeveloper

〈지원 2〉 오픈 카카오톡 채팅방(연중무휴 24시간 운영 중)
______ open.kakao.com/o/gX0WnTCf

〈지원 3〉 깃허브(스터디용 추가 자료 + 100% 본문 정답 코드)
______ github.com/kciter/coding-interview-js

〈지원 4〉 골든래빗 스터디 지원! 묘공단(내돈내산 공부하면 당근마일 제공)
______ goldenrabbit.co.kr/묘공단


 

★ 200% 효과를 내는 학습 구성을 소개합니다!

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


 

[01단계] 이론 탄탄하게 다지기

__각 장의 처음은 이론을 풍성한 그림과 함께 친절한 설명으로 공부합니다.

[02단계] 연습 문제로 워밍업

__그런 다음에는 저자 선생님이 직접 출제한 몸 풀기 문제로 배운 내용을 문제에 적용해봅니다.

[03단계] 모의 테스트로 마무리

__코딩 테스트 실전 풀이죠! 마지막으로 실전 모의 테스트 문제로 실전 감각을 익히고 노하우를 전수받으세요.

[보너스 단계] 엄친아 손노트 요약집

__엄친아 손노트만 분리해 가볍게 가지고 다니며 공부한 내용을 정리해보세요. 급할 때일수록 유용합니다.


 

★ 실전에서 떨지말고 〈실전 모의고사〉로 실전처럼 준비하세요!

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


 

★ 리마인드하고 싶을 때 꺼내보면 좋은 〈엄친아 손노트〉 떼어북!

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

서평

(전) 버드뷰, (전) 뤼이드 김필권

최근 몇 년 간 회사에서 태블릿 개발자들의 채용을 맡아오며 많은 코딩 테스트를 실행해왔습니다. 그러면서 코딩 테스트 문제를 출제하는 사람에게는 '코딩 테스트를 통해 무엇을 보고 싶은지 주제를 명확히 정하는 것'이 매우 중요하다는 것을 깨달았습니다. 이 과정에서 '좋은 코딩 테스트란 무엇인가'에 대해 깊이 생각하게 되었죠. 문제를 푸는 사람이 어떻게 생각하고, 큰 문제를 해결하기 위해 어떤 작은 문제들에 집중하는지가 중요하다는 것을 알게 되었습니다. 이 요소들을 잘 녹여낸 것이 좋은 코딩 테스트인 것 같습니다. 이 책은 알고리즘을 단순하게 외우는 것이 아니라, 문제를 해결하기 위해 알고리즘을 이해하고 활용할 수 있도록 도와줍니다. 특히 자바스크립트와 관련된 기능에 대해 상세히 설명하고 있어서 자바스크립트를 사용하는 개발자들에게 큰 도움이 될 것입니다. 여러분이 이 책을 통해 단순히 코딩 테스트를 통과하는 것 이상의 능력을 갖춘, '왜'를 아는 개발자로 성장할 수 있기를 기원합니다.


 

(전) 카카오, 버킷플레이스(오늘의집) 신태민

코딩 테스트 입문자 관점에서 내용을 쉽게 설명한 점이 돋보입니다. 자주 쓰이는 자료구조와 알고리즘 개념을 예제와 함께 풀어써서 이해하기 쉽고, 주요 문제를 푼 뒤에 다양한 연습 문제를 제공해 실력을 쌓기에 유용합니다. 또한, 그림과 예제가 많아 좀 더 직관적으로 이해할 수 있게 되어 있어 학습에 큰 도움이 됩니다.

제가 코딩 테스트를 공부할 당시에는 이러한 책이 많지 않아 힘들었는데, 요즘에는 비슷한 책들이 많아지고 있는 것 같아 기쁘기도 하고 제가 공부할 때 나왔으면 좋았겠다는 생각도 듭니다. 코딩으로 문제를 해결하는 과정을 자세히 이해하고 싶은 사람들에게 이 책을 적극 추천합니다. 이 책은 코딩 테스트 준비에 있어 든든한 길잡이가 될 것입니다.

저자소개

저자 : 이선협
프로그래밍을 사랑하는 개발자. 분야를 가리지 않고 코딩하는 것을 즐기며 요즘은 지식을 글로 정리하는 것을 취미로 삼고 있다. 현재 주식회사 코발트에서 CTO로 재직 중이다.
저자 : 박경록
매일 퇴근과 점심 메뉴를 고민하는 9년차 시스템 S/W 개발자입니다. 수학, 알고리즘 같은 실생활과 가깝고도 먼 학문을 좋아하고, 명확하지만 개선 여지가 있는 문제들에 대해 논의하고 사고를 개선해 나가는 과정을 좋아합니다.
상단으로 이동