onlybooks / python-algorithm-interview

<파이썬 알고리즘 인터뷰> 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트
1.22k stars 325 forks source link

파이썬 알고리즘 인터뷰

95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트

★ 안내: 2023년 9월, 《자바 알고리즘 인터뷰 with 코틀린》 신간이 출간되었습니다!

《파이썬 알고리즘 인터뷰》는 다음 판매처에서 구매하실 수 있습니다.

및 전국 교보문고 매장

★ 정오표: https://www.onlybook.co.kr/entry/algorithm-interview-errata
★ 도서정보: https://www.onlybook.co.kr/entry/algorithm-interview

★ YouTube: https://www.youtube.com/watch?v=fNyGHpSWhTA

☆ 학교나 학원에서 강의를 진행하시는 교수님/강사님께 제공 가능한 이 책의 강의 교안 자료가 준비되어 있습니다. (1) 성함, 연락처 (2) 강의처 (3) 강의 교과목 (4) 간단한 강의계획 등을 정리하셔서 support@onlybook.co.kr 이메일로 보내주십시오. 내용 검토 후 제공해드리겠습니다.

★ 참고: 《자바 알고리즘 인터뷰 with 코틀린》 https://github.com/onlybooks/java-algorithm-interview

마인드맵

문제 풀이

번호 제목 난이도 풀이 코드
1 유효한 팰린드롬 6장. 문자열 조작 1-1.py
1-2.py
1-3.py
1-4.c
2 문자열 뒤집기 6장. 문자열 조작 2-1.py
2-2.py
3 로그 파일 재정렬 6장. 문자열 조작 3-1.py
4 가장 흔한 단어 6장. 문자열 조작 4-1.py
5 그룹 애너그램 ★★ 6장. 문자열 조작 5-1.py
6 가장 긴 팰린드롬 부분 문자열 ★★ 6장. 문자열 조작 6-1.py
7 두 수의 합 7장. 배열 7-1.py
7-2.py
7-3.py
7-4.py
7-5.py
7-6.go
8 빗물 트래핑 ★★★ 7장. 배열 8-1.py
8-2.py
9 세 수의 합 ★★ 7장. 배열 9-1.py
9-2.py
10 배열 파티션 I 7장. 배열 10-1.py
10-2.py
10-3.py
11 자신을 제외한 배열의 곱 ★★ 7장. 배열 11-1.py
12 주식을 사고팔기 가장 좋은 시점 7장. 배열 12-1.py
12-2.py
13 팰린드롬 연결 리스트 8장. 연결 리스트 13-1.py
13-2.py
13-3.go
13-4.py
14 두 정렬 리스트의 병합 8장. 연결 리스트 14-1.py
15 역순 연결 리스트 8장. 연결 리스트 15-1.py
15-2.py
16 두 수의 덧셈 ★★ 8장. 연결 리스트 16-1.py
16-2.py
17 페어의 노드 스왑 ★★ 8장. 연결 리스트 17-1.py
17-2.py
17-3.py
18 홀짝 연결 리스트 ★★ 8장. 연결 리스트 18-1.py
19 역순 연결 리스트 II ★★ 8장. 연결 리스트 19-1.py
20 유효한 괄호 9장. 스택, 큐 20-1.py
21 중복 문자 제거 ★★★ 9장. 스택, 큐 21-1.py
21-2.py
22 일일 온도 ★★ 9장. 스택, 큐 22-1.py
23 큐를 이용한 스택 구현 9장. 스택, 큐 23-1.py
24 스택을 이용한 큐 구현 9장. 스택, 큐 24-1.py
25 원형 큐 디자인 ★★ 9장. 스택, 큐 25-1.py
26 원형 데크 디자인 ★★ 10장. 데크, 우선 순위 큐 26-1.py
27 k개 정렬 리스트 병합 10장. 데크, 우선 순위 큐 27-1.py
28 해시맵 디자인 11장. 해시 테이블 28-1.py
29 보석과 돌 11장. 해시 테이블 29-1.py
29-2.py
29-3.py
29-4.py
30 중복 문자 없는 가장 긴 부분 문자열 ★★ 11장. 해시 테이블 30-1.py
31 상위 K 빈도 요소 ★★ 11장. 해시 테이블 31-1.py
31-2.py
32 섬의 개수 ★★ 12장. 그래프 32-1.py
33 전화 번호 문자 조합 ★★ 12장. 그래프 33-1.py
34 순열 ★★ 12장. 그래프 34-1.py
34-2.py
35 조합 ★★ 12장. 그래프 35-1.py
35-2.py
36 조합의 합 ★★ 12장. 그래프 36-1.py
37 부분 집합 ★★ 12장. 그래프 37-1.py
38 일정 재구성 ★★ 12장. 그래프 38-1.py
38-2.py
38-3.py
39 코스 스케줄 ★★ 12장. 그래프 39-1.py
39-2.py
40 네트워크 딜레이 타임 ★★ 13장. 최단 경로 문제 40-1.py
41 K 경유지 내 가장 저렴한 항공권 ★★ 13장. 최단 경로 문제 41-1.py
42 이진 트리의 최대 깊이 14장. 트리 42-1.py
43 이진 트리의 직경 14장. 트리 43-1.py
44 가장 긴 동일 값의 경로 14장. 트리 44-1.py
45 이진 트리 반전 14장. 트리 45-1.py
45-2.py
45-3.py
45-4.py
46 두 이진 트리 병합 14장. 트리 46-1.py
47 이진 트리 직렬화 & 역직렬화 ★★★ 14장. 트리 47-1.py
48 균형 이진 트리 14장. 트리 48-1.py
49 최소 높이 트리 ★★ 14장. 트리 49-1.py
50 정렬된 배열의 이진 탐색 트리 변환 14장. 트리 50-1.py
51 이진 탐색 트리(BST)를 더 큰 수 합계 트리로 ★★ 14장. 트리 51-1.py
52 이진 탐색 트리(BST) 합의 범위 14장. 트리 52-1.py
52-2.py
52-3.py
52-4.py
53 이진 탐색 트리(BST) 노드 간 최소 거리 14장. 트리 53-1.py
53-2.py
54 전위, 중위 순회 결과로 이진 트리 구축 ★★ 14장. 트리 54-1.py
55 배열의 K번째 큰 요소 ★★ 15장. 힙 55-1.py
55-2.py
55-3.py
55-4.py
56 트라이 구현 ★★ 16장. 트라이 56-1.py
57 팰린드롬 페어 ★★★ 16장. 트라이 57-1.py
57-2.py
58 리스트 정렬 ★★ 17장. 정렬 58-1.py
58-3.py
59 구간 병합 ★★ 17장. 정렬 59-1.py
60 삽입 정렬 리스트 ★★ 17장. 정렬 60-1.py
60-2.py
61 가장 큰 수 ★★ 17장. 정렬 61-1.py
62 유효한 애너그램 17장. 정렬 62-1.py
63 색 정렬 ★★ 17장. 정렬 63-1.py
64 원점에 K번째 가까운 점 ★★ 17장. 정렬 64-1.py
65 이진 검색 18장. 이진 검색 65-1.py
65-2.py
65-3.py
65-4.py
66 회전 정렬된 배열 검색 ★★ 18장. 이진 검색 66-1.py
67 두 배열의 교집합 18장. 이진 검색 67-1.py
67-2.py
67-3.py
68 두 수의 합 II 18장. 이진 검색 68-1.py
68-2.py
68-3.py
68-4.py
68-5.py
69 2D 행렬 검색 II ★★ 18장. 이진 검색 69-1.py
69-2.py
70 싱글 넘버 19장. 비트 조작 70-1.py
71 해밍 거리 19장. 비트 조작 71-1.py
72 두 정수의 합 ★★★ 19장. 비트 조작 72-1.py
72-2.py
73 UTF-8 검증 ★★ 19장. 비트 조작 73-1.py
74 1비트의 개수 19장. 비트 조작 74-1.py
74-2.py
75 최대 슬라이딩 윈도우 ★★★ 20장. 슬라이딩 윈도우 75-1.py
75-2.py
76 부분 문자열이 포함된 최소 윈도우 ★★★ 20장. 슬라이딩 윈도우 76-1.py
76-2.py
76-3.py
77 가장 긴 반복 문자 대체 ★★ 20장. 슬라이딩 윈도우 77-1.py
78 주식을 사고 팔기 가장 좋은 시점 II 21장. 그리디 알고리즘 78-1.py
78-2.py
79 키에 따른 대기열 재구성 ★★ 21장. 그리디 알고리즘 79-1.py
80 태스크 스케줄러 ★★ 21장. 그리디 알고리즘 80-1.py
81 주유소 ★★ 21장. 그리디 알고리즘 81-1.py
81-2.py
82 쿠키 부여 21장. 그리디 알고리즘 82-1.py
82-2.py
83 과반수 엘리먼트 22장. 분할 정복 83-1.py
83-2.py
83-3.py
83-4.py
84 괄호를 삽입하는 여러가지 방법 ★★ 22장. 분할 정복 84-1.py
85 피보나치 수 23장. 다이나믹 프로그래밍 85-1.py
85-2.py
85-3.py
85-4.py
86 최대 서브 배열 23장. 다이나믹 프로그래밍 86-1.py
86-2.py
87 계단 오르기 23장. 다이나믹 프로그래밍 87-1.py
87-2.py
88 집 도둑 23장. 다이나믹 프로그래밍 88-1.py
88-2.py
89(문제 1) 비밀 지도 부록 B. 카카오 공채 문제 풀이 1.py
90(문제 2) 다트 게임 부록 B. 카카오 공채 문제 풀이 2.py
91(문제 3) 캐시 부록 B. 카카오 공채 문제 풀이 3.py
92(문제 4) 셔틀버스 ★★ 부록 B. 카카오 공채 문제 풀이 4.py
93(문제 5) 뉴스 클러스터링 ★★ 부록 B. 카카오 공채 문제 풀이 5.py
94(문제 6) 프렌즈4블록 ★★★ 부록 B. 카카오 공채 문제 풀이 6.py
95(문제 7) 추석 트래픽 ★★★ 부록 B. 카카오 공채 문제 풀이 7.py

기타 코드

리트코드 변경 사항 및 보다 효율적인 풀이