코딩 테스트와 인터뷰를 준비하는 취준생과 이직자를 위한 알고리즘 문제 풀이 완벽 마스터! 세계 최고 온라인 문제 풀이 사이트인 리트코드(LeetCode)의 기출문제 풀이와 분석!
『파이썬 알고리즘 인터뷰』는 200여 개가 넘는 일러스트를 통해 알고리즘과 자료구조 이론을 한눈에 쉽게 익힐 수 있음은 물론, 파이썬으로 구현하는 코드 풀이를 통해 성능 최적화 기법, 파이썬의 핵심 문법과 다양한 실용 테크닉까지 배울 수 있는, 초보 개발자와 숙련 개발자 모두를 위한 책이다. 마이크로소프트와 구글을 필두로 전 세계 개발자 채용의 첫 관문이 된 코딩 인터뷰! 주요 기업에서 실시하는 코딩 테스트의 기출 문제를 분석하고 상세한 문제 풀이와 해설을 통해 취업과 이직에 한발짝 다가서자. 이 책은 현업과 실무에 유용한 주요 알고리즘 이론을 깊숙이 이해하고, 파이썬의 핵심 기능과 문법까지 상세하게 이해할 수 있는 취업용 코딩 테스트를 위한 완벽 가이드다. 이 책을 다 읽고 나면, “왜 알고리즘을 공부하는가?”라는 질문에 대한 해답을 얻을 것이다.
저자소개
카카오 검색팀과 자연어처리팀을 거쳐 현재 현대자동차 AI 리서치 랩에서 차량에 탑재되는 AI 플랫폼을 만든다. 카카오 채용 코딩 테스트 출제 위원회 소속으로 오랜 기간 개발자 채용에 관여해 왔으며, 현대자동차에서도 AI 플랫폼 팀장으로서 다양한 면접에 참여하고 있다. 현대차그룹(현대차, 기아차, 모비스, 오토에버 등)의 소프트웨어 전문가 채용을 담당하는 TFT에도 소속되어 있다. 2017년, 국내 IT 업계 처음으로 블라인드 채용을 시행한 카카오 신입 개발자 공채의 문제 출제 위원으로 활동했으며, 오프라인 필기 시험의 문제 대부분을 출제하기도 했다. 프로필 사진은 카카오 개발자 공채 최종 오프라인 시험 당시 코엑스에 감독관으로 나갔을 때 현장에서 촬영한 사진이다.
목차
[1부 코딩 인터뷰]1장 코딩 인터뷰코딩 인터뷰를 위한 온라인 테스트 플랫폼국내 기업의 코딩 테스트 플랫폼 활용 현황온라인 코딩 테스트의 사전 준비사항화이트보드 코딩 인터뷰2장 프로그래밍 언어 선택경진대회 통계로 알아본 언어 선호도프로그래밍 언어별 특징__루프__제네릭 프로그래밍__배열 반복__구조체__클래스코딩 테스트에 최적인 프로그래밍 언어는?[2부 파이썬]3장 파이썬파이썬에 대한 이해파이썬 문법__인덴트__네이밍 컨벤션__타입 힌트__리스트 컴프리헨션__제너레이터__range__enumerate__// 나눗셈 연산자__print__pass__locals코딩 스타일__변수명과 주석__리스트 컴프리헨션__구글 파이썬 스타일 가이드4장 빅오, 자료형빅오__상한과 최악__분할 상환 분석__병렬화자료형__파이썬 자료형__원시 타입__객체5장 리스트, 딕셔너리리스트__리스트의 활용 방법__리스트의 특징딕셔너리__딕셔너리의 활용 방법__딕셔너리 모듈6장 문자열 조작[문제]_01 유효한 팰린드롬[문제]_02 문자열 뒤집기[문제]_03 로그 파일 재정렬[문제]_04 가장 흔한 단어[문제]_05 그룹 애너그램여러 가지 정렬 방법[문제]_06 가장 긴 팰린드롬 부분 문자열유니코드와 UTF-8[3부 선형 자료구조]7장 배열[문제]_07 두 수의 합[문제]_08 빗물 트래핑[문제]_09 세 수의 합[문제]_10 배열 파티션 I [문제]_11 자신을 제외한 배열의 곱[문제]_12 주식을 사고팔기 가장 좋은 시점8장 연결 리스트[문제]_13 팰린드롬 연결 리스트[문제]_14 두 정렬 리스트의 병합[문제]_15 역순 연결 리스트[문제]_16 두 수의 덧셈[문제]_17 페어의 노드 스왑 [문제]_18 홀짝 연결 리스트[문제]_19 역순 연결 리스트 II9장 스택, 큐스택__연결 리스트를 이용한 스택 ADT 구현[문제]_20 유효한 괄호[문제]_21 중복 문자 제거[문제]_22 일일 온도큐[문제]_23 큐를 이용한 스택 구현[문제]_24 스택을 이용한 큐 구현[문제]_25 원형 큐 디자인10장 데크, 우선순위 큐데크[문제]_26 원형 데크 디자인우선순위 큐[문제]_27 k개 정렬 리스트 병합11장 해시 테이블해시__생일 문제__비둘기집 원리__로드 팩터__해시 함수충돌__개별 체이닝__오픈 어드레싱__언어별 해시 테이블 구현 방식[문제]_28 해시맵 디자인[문제]_29 보석과 돌[문제]_30 중복 문자 없는 가장 긴 부분 문자열[문제]_31 상위 K 빈도 요소[4부 비선형 자료구조]12장 그래프오일러 경로해밀턴 경로그래프 순회__DFS(깊이 우선 탐색)__BFS(너비 우선 탐색)백트래킹제약 충족 문제[문제]_32 섬의 개수[문제]_33 전화 번호 문자 조합[문제]_34 순열[문제]_35 조합[문제]_36 조합의 합[문제]_37 부분 집합[문제]_38 일정 재구성[문제]_39 코스 스케줄13장 최단 경로 문제[문제]_40 네트워크 딜레이 타임[문제]_41 K 경유지 내 가장 저렴한 항공권14장 트리트리의 각 명칭그래프 vs 트리이진 트리[문제]_42 이진 트리의 최대 깊이[문제]_43 이진 트리의 직경[문제]_44 가장 긴 동일 값의 경로[문제]_45 이진 트리 반전[문제]_46 두 이진 트리 병합[문제]_47 이진 트리 직렬화 & 역직렬화[문제]_48 균형 이진 트리[문제]_49 최소 높이 트리이진 탐색 트리(BST)__자가 균형 이진 탐색 트리[문제]_50 정렬된 배열의 이진 탐색 트리 변환[문제]_51 이진 탐색 트리(BST)를 더 큰 수 합계 트리로[문제]_52 이진 탐색 트리(BST) 합의 범위[문제]_53 이진 탐색 트리(BST) 노드 간 최소 거리트리 순회[문제]_54 전위, 중위 순회 결과로 이진 트리 구축15장 힙힙 연산__삽입__추출[문제]_55 배열의 K번째 큰 요소16장 트라이[문제]_56 트라이 구현[문제]_57 팰린드롬 페어[5부 알고리즘]17장 정렬버블 정렬병합 정렬퀵 정렬안정 정렬 vs 불안정 정렬[문제]_58 리스트 정렬[문제]_59 구간 병합[문제]_60 삽입 정렬 리스트[문제]_61 가장 큰 수[문제]_62 유효한 애너그램[문제]_63 색 정렬[문제]_64 원점에 K번째로 가까운 점18장 이진 검색[문제]_65 이진 검색[문제]_66 회전 정렬된 배열 검색[문제]_67 두 배열의 교집합[문제]_68 두 수의 합 II[문제]_69 2D 매트릭스 검색 II19장 비트 조작부울 연산자비트 연산자비트 조작 퀴즈__자릿수 제한 비트 연산2의 보수__2의 보수 숫자 포맷__2의 보수 수학 연산__비트 연산자 NOT[문제]_70 싱글 넘버[문제]_71 해밍 거리[문제]_72 두 정수의 합[문제]_73 UTF-8 검증[문제]_74 1비트의 개수20장 슬라이딩 윈도우[문제]_75 최대 슬라이딩 윈도우[문제]_76 부분 문자열이 포함된 최소 윈도우[문제]_77 가장 긴 반복 문자 대체21장 그리디 알고리즘배낭 문제동전 바꾸기 문제가장 큰 합[문제]_78 주식을 사고 팔기 가장 좋은 시점 II[문제]_79 키에 따른 대기열 재구성[문제]_80 태스크 스케줄러[문제]_81 주유소[문제]_82 쿠키 부여22장 분할 정복[문제]_83 과반수 엘리먼트[문제]_84 괄호를 삽입하는 여러 가지 방법23장 다이나믹 프로그래밍최적 부분 구조중복된 하위 문제들다이나믹 프로그래밍 방법론[문제]_85 피보나치 수0-1 배낭 문제[문제]_86 최대 서브 배열[문제]_87 계단 오르기[문제]_88 집 도둑부록A 회사 및 이직 가이드회사 가이드취업 준비이직 준비이직 가이드부록B 카카오 공채 문제 풀이[문제]_B1 비밀 지도[문제]_B2 다트 게임[문제]_B3 캐시[문제]_B4 셔틀버스[문제]_B5 뉴스 클러스터링[문제]_B6 프렌즈4블록[문제]_B7 추석 트래픽