이것이 취업을 위한 코딩 테스트다 with Python
취업과 이직을 결정하는 알고리즘 인터뷰 완벽 가이드 (2020년 08월 05일 정식 출시)
- 이 저장소는 이것이 취업을 위한 코딩 테스트다 with Python (나동빈 저, 한빛미디어) 전체 소스코드를 포함합니다.
- 본 책은 Python 3.7 문법을 활용하였으나, 추가적으로 Java, C++11 소스코드를 제공합니다.
- 책 내용 및 소스코드와 관련한 궁금한 점은 Issues 탭을 이용하여 남겨주세요.
- 책의 오류 사항을 발견하시면 dongbinna@postech.ac.kr로 보내주시면 감사하겠습니다.
- 이 경우, 원하신다면 정오표에 독자님의 이름(혹은 아이디)을 함께 기재해드립니다.
- 이 책을 이용해 강의를 진행하시는 교수/선생님/강사/동아리장 님들을 위해 강의용 PPT를 제공합니다. (준비중)
- 전체 동영상 강의는 2020년 8 ~ 9월에 걸친 유튜브 라이브 강의를 진행하고 편집 후에 업로드 될 예정입니다.
- 책 구매 링크: 한빛미디어 / YES24 / 교보문고 / 알라딘
대기업 코딩 테스트 문제 적중 관련
-
최근 2021 K사 공채 코딩 테스트 1차 합격 커트라인은 3문제 ~ 3.5문제(부분점수 포함)로 예상됩니다.
-
저자 또한 코딩 테스트에 참여해 보았고, 파이썬만 이용하여 알고리즘 코딩 테스트에 합격할 수 있었습니다.
-
특히 아래 두 문제는 본 책의 파이썬 코드를 참고하여 쉽게 해결할 수 있었습니다.
-
3번 문제 (이진 탐색): 책의 15장 정렬된 배열에서 특정 수의 개수 구하기 알고리즘을 활용하면 쉽게 풀 수 있는 문제였습니다.
- 파이썬의 bisect_left 함수를 활용합니다.
-
4번 (플로이드 워셜): 책의 9장 미래 도시 문제와 접근 방법 및 아이디어가 사실상 동일한 문제입니다.
- 특정한 중간 지점을 거쳐 갈 때의 최단 경로 알고리즘으로 볼 수 있습니다.
- 저자 개인적으로도 이 문제는 보자마자 풀어서 7분 이내로 풀 수 있었습니다.
도와주신 분들
- 베타 리뷰어 님들: 김민철, 안수빈, 정한길, 황성호 외 10분
- 백준 온라인 저지(BOJ)의 일부 문제를 사용할 수 있도록 허락해주고, 개인적으로 많은 도움을 주신 최백준 님
- 2019, 2020 K사 문제를 책에 수록할 수 있도록 허락해주신 (주)그렙 프로그래머스
시작하며
Part 1 코딩 테스트, 무엇을 어떻게 준비할까?
1장 코딩 테스트 개요
- 코딩 테스트 개념과 배경
- 실습 환경 구축하기
- 복잡도
2장 16~20년 코딩 테스트 기출문제 유형 분석
- 최신 출제 경향과 준비 방향
- 연도별 코딩 테스트 유형 분석
GUIDE: 성공적인 취업을 위한 가이드
- 채용 프로세스
- 기술 면접의 대표적인 유형
- 기술 면접 준비
- 알고리즘 문제 풀이 사이트
- 커뮤니티 사이트
Part 2 주요 알고리즘 이론과 실전 문제
3장 그리디
4장 구현
5장 DFS/BFS
6장 정렬
7장 이진 탐색
8장 다이나믹 프로그래밍
9장 최단 경로
10장 기타 그래프 이론
Part 3 알고리즘 유형별 기출문제
11장 그리디
12장 구현
13장 DFS/BFS
14장 정렬
15장 이진 탐색
16장 다이나믹 프로그래밍
17장 최단 경로
18장 기타 그래프 이론
19장 2020년 상반기 삼성전자 기출문제
Part 4 부록
부록 A 코딩 테스트를 위한 파이썬 문법
- 자료형
- 수 자료형
- 리스트 자료형
- 리스트 만들기
- 리스트 인덱싱
- 리스트 슬라이싱
- 리스트 컴프리헨션
- 리스트 관련 메서드
- 문자열 자료형
- 튜플 자료형
- 사전 자료형
- 사전 자료형 초기화
- 사전에서 키로 검색
- 사전 자료형 관련 메서드
- 집합 자료형
- 조건문
- 조건문 예시 1
- 조건문 예시 2
- 조건문 예시 3
- pass 키워드 사용 예시
- 조건문 한 줄에 쓰기
- 조건부 표현식
- 반복문
- while 문법
- while 문법 예시 1
- while 문법 예시 2
- for 문법
- for 문법 예시 1
- for 문법 예시 2
- for 문법 예시 3
- for 문법 예시 4
- 함수
- 입출력
- 코딩 테스트에서 입력을 위한 전형적인 코드
- 공백을 기준으로 적은 수의 데이터 입력
- readline()으로 빠르게 입력 받기
- f-string 사용 예시
- 주요 라이브러리의 문법과 유의점
- 내장 함수
- itertools
- heapq
- bisect
- collections
- math
- 자신만의 알고리즘 노트 만들기
부록 B 기타 알고리즘
부록 C 개발형 코딩 테스트
- 서버와 클라이언트
- REST API
- JSON
- API 호출 실습
- API 호출 실습 1
- API 호출 실습 2
- 회원 정보 처리 실습
부록 D 알고리즘 유형별 문제 풀이
추가 보충 자료
책에서는 자세히 다루지 않지만 독자의 요청으로 추가적으로 제공합니다.
- 트리(Tree)
- 우선순위 큐 (Priority Queue)
- 바이너리 인덱스 트리 (Binary Indexed Tree, BIT, Fenwick Tree)
- 벨만-포드 (Bellman-Ford) 최단 경로 알고리즘
- 최소 공통 조상 (Lowest Common Ancestor, LCA)