Skip to content

Latest commit

History

History
147 lines (134 loc) · 22.2 KB

File metadata and controls

147 lines (134 loc) · 22.2 KB

파이썬 알고리즘 인터뷰

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배열 파티션 I7장. 배열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
27k개 정렬 리스트 병합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
41K 경유지 내 가장 저렴한 항공권★★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두 수의 합 II18장. 이진 검색68-1.py
68-2.py
68-3.py
68-4.py
68-5.py
692D 행렬 검색 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
73UTF-8 검증★★19장. 비트 조작73-1.py
741비트의 개수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주식을 사고 팔기 가장 좋은 시점 II21장. 그리디 알고리즘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

기타 코드

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

  • 7번 문제는 테스트케이스가 삭제되어 실행 시간이 달라졌습니다. #62
  • 25번 문제의 보다 효율적인 풀이는 #105를 참고하세요.
  • 33번 문제의 보다 효율적인 풀이는 #91을 참고하세요.
  • 35번 문제의 보다 효율적인 풀이는 #111을 참고하세요.
  • 36번 문제의 보다 효율적인 풀이는 #112를 참고하세요.
  • 41번 문제가 테스트케이스 변경으로 타임아웃이 발생하여 더 이상 풀이가 되지 않습니다. #104
  • 47번 문제는 평가 함수의 변경으로 TreeNode 선언을 주석으로 처리하고 실행하세요. #97
  • 75번 문제는 테스트케이스가 추가되어 더 이상 풀이가 되지 않습니다. 새로운 풀이는 #67을 참고하세요.