diff --git a/README.md b/README.md index 83a6340..aa13db5 100644 --- a/README.md +++ b/README.md @@ -16,94 +16,94 @@ | 번호 | 제목 | 난이도 | 장 | 풀이 코드 | | --- | --- | ---- | - | --- | -| 1 | 유효한 팰린드롬 | ★ | 6장. 문자열 조작 | [1-1.py](2-python/ch06/1-1.py)
[1-2.py](2-python/ch06/1-2.py)
[1-3.py](2-python/ch06/1-3.py)
[1-4.c](2-python/ch06/1-4.c) | -| 2 | 문자열 뒤집기 | ★ | 6장. 문자열 조작 | [2-1.py](2-python/ch06/2-1.py)
[2-2.py](2-python/ch06/2-2.py) | -| 3 | 로그 파일 재정렬 | ★ | 6장. 문자열 조작 | [3-1.py](2-python/ch06/3-1.py) | -| 4 | 가장 흔한 단어 | ★ | 6장. 문자열 조작 | [4-1.py](2-python/ch06/4-1.py) | -| 5 | 그룹 애너그램 | ★★ | 6장. 문자열 조작 | [5-1.py](2-python/ch06/5-1.py) | -| 6 | 가장 긴 팰린드롬 부분 문자열 | ★★ | 6장. 문자열 조작 | [6-1.py](2-python/ch06/6-1.py) | -| 7 | 두 수의 합 | ★ | 7장. 배열 | [7-1.py](3-linear-data-structures/ch07/7-1.py)
[7-2.py](3-linear-data-structures/ch07/7-2.py)
[7-3.py](3-linear-data-structures/ch07/7-3.py)
[7-4.py](3-linear-data-structures/ch07/7-4.py)
[7-5.py](3-linear-data-structures/ch07/7-5.py)
[7-6.go](3-linear-data-structures/ch07/7-6.go) | -| 8 | 빗물 트래핑 | ★★★ | 7장. 배열 | [8-1.py](3-linear-data-structures/ch07/8-1.py)
[8-2.py](3-linear-data-structures/ch07/8-2.py) | -| 9 | 세 수의 합 | ★★ | 7장. 배열 | [9-1.py](3-linear-data-structures/ch07/9-1.py)
[9-2.py](3-linear-data-structures/ch07/9-2.py) | -| 10 | 배열 파티션 I | ★ | 7장. 배열 | [10-1.py](3-linear-data-structures/ch07/10-1.py)
[10-2.py](3-linear-data-structures/ch07/10-2.py)
[10-3.py](3-linear-data-structures/ch07/10-3.py) | -| 11 | 자신을 제외한 배열의 곱 | ★★ | 7장. 배열 | [11-1.py](3-linear-data-structures/ch07/11-1.py) | -| 12 | 주식을 사고팔기 가장 좋은 시점 | ★ | 7장. 배열 | [12-1.py](3-linear-data-structures/ch07/12-1.py)
[12-2.py](3-linear-data-structures/ch07/12-2.py) | -| 13 | 팰린드롬 연결 리스트 | ★ | 8장. 연결 리스트 | [13-1.py](3-linear-data-structures/ch08/13-1.py)
[13-2.py](3-linear-data-structures/ch08/13-2.py)
[13-3.go](3-linear-data-structures/ch08/13-3.go)
[13-4.py](3-linear-data-structures/ch08/13-4.py) | -| 14 | 두 정렬 리스트의 병합 | ★ | 8장. 연결 리스트 | [14-1.py](3-linear-data-structures/ch08/14-1.py) | -| 15 | 역순 연결 리스트 | ★ | 8장. 연결 리스트 | [15-1.py](3-linear-data-structures/ch08/15-1.py)
[15-2.py](3-linear-data-structures/ch08/15-2.py) | -| 16 | 두 수의 덧셈 | ★★ | 8장. 연결 리스트 | [16-1.py](3-linear-data-structures/ch08/16-1.py)
[16-2.py](3-linear-data-structures/ch08/16-2.py) | -| 17 | 페어의 노드 스왑 | ★★ | 8장. 연결 리스트 | [17-1.py](3-linear-data-structures/ch08/17-1.py)
[17-2.py](3-linear-data-structures/ch08/17-2.py)
[17-3.py](3-linear-data-structures/ch08/17-3.py) | -| 18 | 홀짝 연결 리스트 | ★★ | 8장. 연결 리스트 | [18-1.py](3-linear-data-structures/ch08/18-1.py) | -| 19 | 역순 연결 리스트 II | ★★ | 8장. 연결 리스트 | [19-1.py](3-linear-data-structures/ch08/19-1.py) | -| 20 | 유효한 괄호 | ★ | 9장. 스택, 큐 | [20-1.py](3-linear-data-structures/ch09/20-1.py) | -| 21 | 중복 문자 제거 | ★★★ | 9장. 스택, 큐 | [21-1.py](3-linear-data-structures/ch09/21-1.py)
[21-2.py](3-linear-data-structures/ch09/21-2.py) | -| 22 | 일일 온도 | ★★ | 9장. 스택, 큐 | [22-1.py](3-linear-data-structures/ch09/22-1.py) | -| 23 | 큐를 이용한 스택 구현 | ★ | 9장. 스택, 큐 | [23-1.py](3-linear-data-structures/ch09/23-1.py) | -| 24 | 스택을 이용한 큐 구현 | ★ | 9장. 스택, 큐 | [24-1.py](3-linear-data-structures/ch09/24-1.py) | -| 25 | 원형 큐 디자인 | ★★ | 9장. 스택, 큐 | [25-1.py](3-linear-data-structures/ch09/25-1.py) | -| 26 | 원형 데크 디자인 | ★★ | 10장. 데크, 우선 순위 큐 | [26-1.py](3-linear-data-structures/ch10/26-1.py) | -| 27 | k개 정렬 리스트 병합 | ★ | 10장. 데크, 우선 순위 큐 | [27-1.py](3-linear-data-structures/ch10/27-1.py) | -| 28 | 해시맵 디자인 | ★ | 11장. 해시 테이블 | [28-1.py](3-linear-data-structures/ch11/28-1.py) | -| 29 | 보석과 돌 | ★ | 11장. 해시 테이블 | [29-1.py](3-linear-data-structures/ch11/29-1.py)
[29-2.py](3-linear-data-structures/ch11/29-2.py)
[29-3.py](3-linear-data-structures/ch11/29-3.py)
[29-4.py](3-linear-data-structures/ch11/29-4.py) | -| 30 | 중복 문자 없는 가장 긴 부분 문자열 | ★★ | 11장. 해시 테이블 | [30-1.py](3-linear-data-structures/ch11/30-1.py) | -| 31 | 상위 K 빈도 요소 | ★★ | 11장. 해시 테이블 | [31-1.py](3-linear-data-structures/ch11/31-1.py)
[31-2.py](3-linear-data-structures/ch11/31-2.py) | -| 32 | 섬의 개수 | ★★ | 12장. 그래프 | [32-1.py](4-non-linear-data-structures/ch12/32-1.py) | -| 33 | 전화 번호 문자 조합 | ★★ | 12장. 그래프 | [33-1.py](4-non-linear-data-structures/ch12/33-1.py) | -| 34 | 순열 | ★★ | 12장. 그래프 | [34-1.py](4-non-linear-data-structures/ch12/34-1.py)
[34-2.py](4-non-linear-data-structures/ch12/34-2.py) | -| 35 | 조합 | ★★ | 12장. 그래프 | [35-1.py](4-non-linear-data-structures/ch12/35-1.py)
[35-2.py](4-non-linear-data-structures/ch12/35-2.py) | -| 36 | 조합의 합 | ★★ | 12장. 그래프 | [36-1.py](4-non-linear-data-structures/ch12/36-1.py) | -| 37 | 부분 집합 | ★★ | 12장. 그래프 | [37-1.py](4-non-linear-data-structures/ch12/37-1.py) | -| 38 | 일정 재구성 | ★★ | 12장. 그래프 | [38-1.py](4-non-linear-data-structures/ch12/38-1.py)
[38-2.py](4-non-linear-data-structures/ch12/38-2.py)
[38-3.py](4-non-linear-data-structures/ch12/38-3.py) | -| 39 | 코스 스케줄 | ★★ | 12장. 그래프 | [39-1.py](4-non-linear-data-structures/ch12/39-1.py)
[39-2.py](4-non-linear-data-structures/ch12/39-2.py) | -| 40 | 네트워크 딜레이 타임 | ★★ | 13장. 최단 경로 문제 | [40-1.py](4-non-linear-data-structures/ch13/40-1.py) | -| 41 | K 경유지 내 가장 저렴한 항공권 | ★★ | 13장. 최단 경로 문제 | [41-1.py](4-non-linear-data-structures/ch13/41-1.py) | -| 42 | 이진 트리의 최대 깊이 | ★ | 14장. 트리 | [42-1.py](4-non-linear-data-structures/ch14/42-1.py) | -| 43 | 이진 트리의 직경 | ★ | 14장. 트리 | [43-1.py](4-non-linear-data-structures/ch14/43-1.py) | -| 44 | 가장 긴 동일 값의 경로 | ★ | 14장. 트리 | [44-1.py](4-non-linear-data-structures/ch14/44-1.py) | -| 45 | 이진 트리 반전 | ★ | 14장. 트리 | [45-1.py](4-non-linear-data-structures/ch14/45-1.py)
[45-2.py](4-non-linear-data-structures/ch14/45-2.py)
[45-3.py](4-non-linear-data-structures/ch14/45-3.py)
[45-4.py](4-non-linear-data-structures/ch14/45-4.py) | -| 46 | 두 이진 트리 병합 | ★ | 14장. 트리 | [46-1.py](4-non-linear-data-structures/ch14/46-1.py) | -| 47 | 이진 트리 직렬화 & 역직렬화 | ★★★ | 14장. 트리 | [47-1.py](4-non-linear-data-structures/ch14/47-1.py) | -| 48 | 균형 이진 트리 | ★ | 14장. 트리 | [48-1.py](4-non-linear-data-structures/ch14/48-1.py) | -| 49 | 최소 높이 트리 | ★★ | 14장. 트리 | [49-1.py](4-non-linear-data-structures/ch14/49-1.py) | -| 50 | 정렬된 배열의 이진 탐색 트리 변환 | ★ | 14장. 트리 | [50-1.py](4-non-linear-data-structures/ch14/50-1.py) | -| 51 | 이진 탐색 트리(BST)를 더 큰 수 합계 트리로 | ★★ | 14장. 트리 | [51-1.py](4-non-linear-data-structures/ch14/51-1.py) | -| 52 | 이진 탐색 트리(BST) 합의 범위 | ★ | 14장. 트리 | [52-1.py](4-non-linear-data-structures/ch14/52-1.py)
[52-2.py](4-non-linear-data-structures/ch14/52-2.py)
[52-3.py](4-non-linear-data-structures/ch14/52-3.py)
[52-4.py](4-non-linear-data-structures/ch14/52-4.py) | -| 53 | 이진 탐색 트리(BST) 노드 간 최소 거리 | ★ | 14장. 트리 | [53-1.py](4-non-linear-data-structures/ch14/53-1.py)
[53-2.py](4-non-linear-data-structures/ch14/53-2.py) | -| 54 | 전위, 중위 순회 결과로 이진 트리 구축 | ★★ | 14장. 트리 | [54-1.py](4-non-linear-data-structures/ch14/54-1.py) | -| 55 | 배열의 K번째 큰 요소 | ★★ | 15장. 힙 | [55-1.py](4-non-linear-data-structures/ch15/55-1.py)
[55-2.py](4-non-linear-data-structures/ch15/55-2.py)
[55-3.py](4-non-linear-data-structures/ch15/55-3.py)
[55-4.py](4-non-linear-data-structures/ch15/55-4.py) | -| 56 | 트라이 구현 | ★★ | 16장. 트라이 | [56-1.py](4-non-linear-data-structures/ch16/56-1.py) | -| 57 | 팰린드롬 페어 | ★★★ | 16장. 트라이 | [57-1.py](4-non-linear-data-structures/ch16/57-1.py)
[57-2.py](4-non-linear-data-structures/ch16/57-2.py) | -| 58 | 리스트 정렬 | ★★ | 17장. 정렬 | [58-1.py](5-algorithms/ch17/58-1.py)
[58-3.py](5-algorithms/ch17/58-3.py) | -| 59 | 구간 병합 | ★★ | 17장. 정렬 | [59-1.py](5-algorithms/ch17/59-1.py) | -| 60 | 삽입 정렬 리스트 | ★★ | 17장. 정렬 | [60-1.py](5-algorithms/ch17/60-1.py)
[60-2.py](5-algorithms/ch17/60-2.py) | -| 61 | 가장 큰 수 | ★★ | 17장. 정렬 | [61-1.py](5-algorithms/ch17/61-1.py) | -| 62 | 유효한 애너그램 | ★ | 17장. 정렬 | [62-1.py](5-algorithms/ch17/62-1.py) | -| 63 | 색 정렬 | ★★ | 17장. 정렬 | [63-1.py](5-algorithms/ch17/63-1.py) | -| 64 | 원점에 K번째 가까운 점 | ★★ | 17장. 정렬 | [64-1.py](5-algorithms/ch17/64-1.py) | -| 65 | 이진 검색 | ★ | 18장. 이진 검색 | [65-1.py](5-algorithms/ch18/65-1.py)
[65-2.py](5-algorithms/ch18/65-2.py)
[65-3.py](5-algorithms/ch18/65-3.py)
[65-4.py](5-algorithms/ch18/65-4.py) | -| 66 | 회전 정렬된 배열 검색 | ★★ | 18장. 이진 검색 | [66-1.py](5-algorithms/ch18/66-1.py) | -| 67 | 두 배열의 교집합 | ★ | 18장. 이진 검색 | [67-1.py](5-algorithms/ch18/67-1.py)
[67-2.py](5-algorithms/ch18/67-2.py)
[67-3.py](5-algorithms/ch18/67-3.py) | -| 68 | 두 수의 합 II | ★ | 18장. 이진 검색 | [68-1.py](5-algorithms/ch18/68-1.py)
[68-2.py](5-algorithms/ch18/68-2.py)
[68-3.py](5-algorithms/ch18/68-3.py)
[68-4.py](5-algorithms/ch18/68-4.py)
[68-5.py](5-algorithms/ch18/68-5.py) | -| 69 | 2D 행렬 검색 II | ★★ | 18장. 이진 검색 | [69-1.py](5-algorithms/ch18/69-1.py)
[69-2.py](5-algorithms/ch18/69-2.py) | -| 70 | 싱글 넘버 | ★ | 19장. 비트 조작 | [70-1.py](5-algorithms/ch19/70-1.py) | -| 71 | 해밍 거리 | ★ | 19장. 비트 조작 | [71-1.py](5-algorithms/ch19/71-1.py) | -| 72 | 두 정수의 합 | ★★★ | 19장. 비트 조작 | [72-1.py](5-algorithms/ch19/72-1.py)
[72-2.py](5-algorithms/ch19/72-2.py) | -| 73 | UTF-8 검증 | ★★ | 19장. 비트 조작 | [73-1.py](5-algorithms/ch19/73-1.py) | -| 74 | 1비트의 개수 | ★ | 19장. 비트 조작 | [74-1.py](5-algorithms/ch19/74-1.py)
[74-2.py](5-algorithms/ch19/74-2.py) | -| 75 | 최대 슬라이딩 윈도우 | ★★★ | 20장. 슬라이딩 윈도우 | [75-1.py](5-algorithms/ch20/75-1.py)
[75-2.py](5-algorithms/ch20/75-2.py) | -| 76 | 부분 문자열이 포함된 최소 윈도우 | ★★★ | 20장. 슬라이딩 윈도우 | [76-1.py](5-algorithms/ch20/76-1.py)
[76-2.py](5-algorithms/ch20/76-2.py)
[76-3.py](5-algorithms/ch20/76-3.py) | -| 77 | 가장 긴 반복 문자 대체 | ★★ | 20장. 슬라이딩 윈도우 | [77-1.py](5-algorithms/ch20/77-1.py) | -| 78 | 주식을 사고 팔기 가장 좋은 시점 II | ★ | 21장. 그리디 알고리즘 | [78-1.py](5-algorithms/ch21/78-1.py)
[78-2.py](5-algorithms/ch21/78-2.py) | -| 79 | 키에 따른 대기열 재구성 | ★★ | 21장. 그리디 알고리즘 | [79-1.py](5-algorithms/ch21/79-1.py) | -| 80 | 태스크 스케줄러 | ★★ | 21장. 그리디 알고리즘 | [80-1.py](5-algorithms/ch21/80-1.py) | -| 81 | 주유소 | ★★ | 21장. 그리디 알고리즘 | [81-1.py](5-algorithms/ch21/81-1.py)
[81-2.py](5-algorithms/ch21/81-2.py) | -| 82 | 쿠키 부여 | ★ | 21장. 그리디 알고리즘 | [82-1.py](5-algorithms/ch21/82-1.py)
[82-2.py](5-algorithms/ch21/82-2.py) | -| 83 | 과반수 엘리먼트 | ★ | 22장. 분할 정복 | [83-1.py](5-algorithms/ch22/83-1.py)
[83-2.py](5-algorithms/ch22/83-2.py)
[83-3.py](5-algorithms/ch22/83-3.py)
[83-4.py](5-algorithms/ch22/83-4.py) | -| 84 | 괄호를 삽입하는 여러가지 방법 | ★★ | 22장. 분할 정복 | [84-1.py](5-algorithms/ch22/84-1.py) | -| 85 | 피보나치 수 | ★ | 23장. 다이나믹 프로그래밍 | [85-1.py](5-algorithms/ch23/85-1.py)
[85-2.py](5-algorithms/ch23/85-2.py)
[85-3.py](5-algorithms/ch23/85-3.py)
[85-4.py](5-algorithms/ch23/85-4.py) | -| 86 | 최대 서브 배열 | ★ | 23장. 다이나믹 프로그래밍 | [86-1.py](5-algorithms/ch23/86-1.py)
[86-2.py](5-algorithms/ch23/86-2.py) | -| 87 | 계단 오르기 | ★ | 23장. 다이나믹 프로그래밍 | [87-1.py](5-algorithms/ch23/87-1.py)
[87-2.py](5-algorithms/ch23/87-2.py) | -| 88 | 집 도둑 | ★ | 23장. 다이나믹 프로그래밍 | [88-1.py](5-algorithms/ch23/88-1.py)
[88-2.py](5-algorithms/ch23/88-2.py) | +| 1 | [유효한 팰린드롬](https://leetcode.com/problems/valid-palindrome/) | ★ | 6장. 문자열 조작 | [1-1.py](2-python/ch06/1-1.py)
[1-2.py](2-python/ch06/1-2.py)
[1-3.py](2-python/ch06/1-3.py)
[1-4.c](2-python/ch06/1-4.c) | +| 2 | [문자열 뒤집기](https://leetcode.com/problems/reverse-string/) | ★ | 6장. 문자열 조작 | [2-1.py](2-python/ch06/2-1.py)
[2-2.py](2-python/ch06/2-2.py) | +| 3 | [로그 파일 재정렬](https://leetcode.com/problems/reorder-data-in-log-files/) | ★ | 6장. 문자열 조작 | [3-1.py](2-python/ch06/3-1.py) | +| 4 | [가장 흔한 단어](https://leetcode.com/problems/most-common-word/) | ★ | 6장. 문자열 조작 | [4-1.py](2-python/ch06/4-1.py) | +| 5 | [그룹 애너그램](https://leetcode.com/problems/group-anagrams/) | ★★ | 6장. 문자열 조작 | [5-1.py](2-python/ch06/5-1.py) | +| 6 | [가장 긴 팰린드롬 부분 문자열](https://leetcode.com/problems/longest-palindromic-substring/) | ★★ | 6장. 문자열 조작 | [6-1.py](2-python/ch06/6-1.py) | +| 7 | [두 수의 합](https://leetcode.com/problems/two-sum/) | ★ | 7장. 배열 | [7-1.py](3-linear-data-structures/ch07/7-1.py)
[7-2.py](3-linear-data-structures/ch07/7-2.py)
[7-3.py](3-linear-data-structures/ch07/7-3.py)
[7-4.py](3-linear-data-structures/ch07/7-4.py)
[7-5.py](3-linear-data-structures/ch07/7-5.py)
[7-6.go](3-linear-data-structures/ch07/7-6.go) | +| 8 | [빗물 트래핑](https://leetcode.com/problems/trapping-rain-water/) | ★★★ | 7장. 배열 | [8-1.py](3-linear-data-structures/ch07/8-1.py)
[8-2.py](3-linear-data-structures/ch07/8-2.py) | +| 9 | [세 수의 합](https://leetcode.com/problems/3sum/) | ★★ | 7장. 배열 | [9-1.py](3-linear-data-structures/ch07/9-1.py)
[9-2.py](3-linear-data-structures/ch07/9-2.py) | +| 10 | [배열 파티션 I](https://leetcode.com/problems/array-partition-i/) | ★ | 7장. 배열 | [10-1.py](3-linear-data-structures/ch07/10-1.py)
[10-2.py](3-linear-data-structures/ch07/10-2.py)
[10-3.py](3-linear-data-structures/ch07/10-3.py) | +| 11 | [자신을 제외한 배열의 곱](https://leetcode.com/problems/product-of-array-except-self/) | ★★ | 7장. 배열 | [11-1.py](3-linear-data-structures/ch07/11-1.py) | +| 12 | [주식을 사고팔기 가장 좋은 시점](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) | ★ | 7장. 배열 | [12-1.py](3-linear-data-structures/ch07/12-1.py)
[12-2.py](3-linear-data-structures/ch07/12-2.py) | +| 13 | [팰린드롬 연결 리스트](https://leetcode.com/problems/palindrome-linked-list/) | ★ | 8장. 연결 리스트 | [13-1.py](3-linear-data-structures/ch08/13-1.py)
[13-2.py](3-linear-data-structures/ch08/13-2.py)
[13-3.go](3-linear-data-structures/ch08/13-3.go)
[13-4.py](3-linear-data-structures/ch08/13-4.py) | +| 14 | [두 정렬 리스트의 병합](https://leetcode.com/problems/merge-two-sorted-lists/) | ★ | 8장. 연결 리스트 | [14-1.py](3-linear-data-structures/ch08/14-1.py) | +| 15 | [역순 연결 리스트](https://leetcode.com/problems/reverse-linked-list/) | ★ | 8장. 연결 리스트 | [15-1.py](3-linear-data-structures/ch08/15-1.py)
[15-2.py](3-linear-data-structures/ch08/15-2.py) | +| 16 | [두 수의 덧셈](https://leetcode.com/problems/add-two-numbers/) | ★★ | 8장. 연결 리스트 | [16-1.py](3-linear-data-structures/ch08/16-1.py)
[16-2.py](3-linear-data-structures/ch08/16-2.py) | +| 17 | [페어의 노드 스왑](https://leetcode.com/problems/swap-nodes-in-pairs/) | ★★ | 8장. 연결 리스트 | [17-1.py](3-linear-data-structures/ch08/17-1.py)
[17-2.py](3-linear-data-structures/ch08/17-2.py)
[17-3.py](3-linear-data-structures/ch08/17-3.py) | +| 18 | [홀짝 연결 리스트](https://leetcode.com/problems/odd-even-linked-list/) | ★★ | 8장. 연결 리스트 | [18-1.py](3-linear-data-structures/ch08/18-1.py) | +| 19 | [역순 연결 리스트 II](https://leetcode.com/problems/reverse-linked-list-ii/) | ★★ | 8장. 연결 리스트 | [19-1.py](3-linear-data-structures/ch08/19-1.py) | +| 20 | [유효한 괄호](https://leetcode.com/problems/valid-parentheses/) | ★ | 9장. 스택, 큐 | [20-1.py](3-linear-data-structures/ch09/20-1.py) | +| 21 | [중복 문자 제거](https://leetcode.com/problems/remove-duplicate-letters/) | ★★★ | 9장. 스택, 큐 | [21-1.py](3-linear-data-structures/ch09/21-1.py)
[21-2.py](3-linear-data-structures/ch09/21-2.py) | +| 22 | [일일 온도](https://leetcode.com/problems/daily-temperatures/) | ★★ | 9장. 스택, 큐 | [22-1.py](3-linear-data-structures/ch09/22-1.py) | +| 23 | [큐를 이용한 스택 구현](https://leetcode.com/problems/implement-stack-using-queues/) | ★ | 9장. 스택, 큐 | [23-1.py](3-linear-data-structures/ch09/23-1.py) | +| 24 | [스택을 이용한 큐 구현](https://leetcode.com/problems/implement-queue-using-stacks/) | ★ | 9장. 스택, 큐 | [24-1.py](3-linear-data-structures/ch09/24-1.py) | +| 25 | [원형 큐 디자인](https://leetcode.com/problems/design-circular-queue/) | ★★ | 9장. 스택, 큐 | [25-1.py](3-linear-data-structures/ch09/25-1.py) | +| 26 | [원형 데크 디자인](https://leetcode.com/problems/design-circular-deque/) | ★★ | 10장. 데크, 우선 순위 큐 | [26-1.py](3-linear-data-structures/ch10/26-1.py) | +| 27 | [k개 정렬 리스트 병합](https://leetcode.com/problems/merge-k-sorted-lists/) | ★ | 10장. 데크, 우선 순위 큐 | [27-1.py](3-linear-data-structures/ch10/27-1.py) | +| 28 | [해시맵 디자인](https://leetcode.com/problems/design-hashmap/) | ★ | 11장. 해시 테이블 | [28-1.py](3-linear-data-structures/ch11/28-1.py) | +| 29 | [보석과 돌](https://leetcode.com/problems/jewels-and-stones/) | ★ | 11장. 해시 테이블 | [29-1.py](3-linear-data-structures/ch11/29-1.py)
[29-2.py](3-linear-data-structures/ch11/29-2.py)
[29-3.py](3-linear-data-structures/ch11/29-3.py)
[29-4.py](3-linear-data-structures/ch11/29-4.py) | +| 30 | [중복 문자 없는 가장 긴 부분 문자열](https://leetcode.com/problems/longest-substring-without-repeating-characters/) | ★★ | 11장. 해시 테이블 | [30-1.py](3-linear-data-structures/ch11/30-1.py) | +| 31 | [상위 K 빈도 요소](https://leetcode.com/problems/top-k-frequent-elements/) | ★★ | 11장. 해시 테이블 | [31-1.py](3-linear-data-structures/ch11/31-1.py)
[31-2.py](3-linear-data-structures/ch11/31-2.py) | +| 32 | [섬의 개수](https://leetcode.com/problems/number-of-islands/) | ★★ | 12장. 그래프 | [32-1.py](4-non-linear-data-structures/ch12/32-1.py) | +| 33 | [전화 번호 문자 조합](https://leetcode.com/problems/letter-combinations-of-a-phone-number/) | ★★ | 12장. 그래프 | [33-1.py](4-non-linear-data-structures/ch12/33-1.py) | +| 34 | [순열](https://leetcode.com/problems/permutations/) | ★★ | 12장. 그래프 | [34-1.py](4-non-linear-data-structures/ch12/34-1.py)
[34-2.py](4-non-linear-data-structures/ch12/34-2.py) | +| 35 | [조합](https://leetcode.com/problems/combinations/) | ★★ | 12장. 그래프 | [35-1.py](4-non-linear-data-structures/ch12/35-1.py)
[35-2.py](4-non-linear-data-structures/ch12/35-2.py) | +| 36 | [조합의 합](https://leetcode.com/problems/combination-sum/) | ★★ | 12장. 그래프 | [36-1.py](4-non-linear-data-structures/ch12/36-1.py) | +| 37 | [부분 집합](https://leetcode.com/problems/subsets/) | ★★ | 12장. 그래프 | [37-1.py](4-non-linear-data-structures/ch12/37-1.py) | +| 38 | [일정 재구성](https://leetcode.com/problems/reconstruct-itinerary/) | ★★ | 12장. 그래프 | [38-1.py](4-non-linear-data-structures/ch12/38-1.py)
[38-2.py](4-non-linear-data-structures/ch12/38-2.py)
[38-3.py](4-non-linear-data-structures/ch12/38-3.py) | +| 39 | [코스 스케줄](https://leetcode.com/problems/course-schedule/) | ★★ | 12장. 그래프 | [39-1.py](4-non-linear-data-structures/ch12/39-1.py)
[39-2.py](4-non-linear-data-structures/ch12/39-2.py) | +| 40 | [네트워크 딜레이 타임](https://leetcode.com/problems/network-delay-time/) | ★★ | 13장. 최단 경로 문제 | [40-1.py](4-non-linear-data-structures/ch13/40-1.py) | +| 41 | [K 경유지 내 가장 저렴한 항공권](https://leetcode.com/problems/cheapest-flights-within-k-stops/) | ★★ | 13장. 최단 경로 문제 | [41-1.py](4-non-linear-data-structures/ch13/41-1.py) | +| 42 | [이진 트리의 최대 깊이](https://leetcode.com/problems/maximum-depth-of-binary-tree/) | ★ | 14장. 트리 | [42-1.py](4-non-linear-data-structures/ch14/42-1.py) | +| 43 | [이진 트리의 직경](https://leetcode.com/problems/diameter-of-binary-tree/) | ★ | 14장. 트리 | [43-1.py](4-non-linear-data-structures/ch14/43-1.py) | +| 44 | [가장 긴 동일 값의 경로](https://leetcode.com/problems/longest-univalue-path/) | ★ | 14장. 트리 | [44-1.py](4-non-linear-data-structures/ch14/44-1.py) | +| 45 | [이진 트리 반전](https://leetcode.com/problems/invert-binary-tree/) | ★ | 14장. 트리 | [45-1.py](4-non-linear-data-structures/ch14/45-1.py)
[45-2.py](4-non-linear-data-structures/ch14/45-2.py)
[45-3.py](4-non-linear-data-structures/ch14/45-3.py)
[45-4.py](4-non-linear-data-structures/ch14/45-4.py) | +| 46 | [두 이진 트리 병합](https://leetcode.com/problems/merge-two-binary-trees/) | ★ | 14장. 트리 | [46-1.py](4-non-linear-data-structures/ch14/46-1.py) | +| 47 | [이진 트리 직렬화 & 역직렬화](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) | ★★★ | 14장. 트리 | [47-1.py](4-non-linear-data-structures/ch14/47-1.py) | +| 48 | [균형 이진 트리](https://leetcode.com/problems/balanced-binary-tree/) | ★ | 14장. 트리 | [48-1.py](4-non-linear-data-structures/ch14/48-1.py) | +| 49 | [최소 높이 트리](https://leetcode.com/problems/minimum-height-trees/) | ★★ | 14장. 트리 | [49-1.py](4-non-linear-data-structures/ch14/49-1.py) | +| 50 | [정렬된 배열의 이진 탐색 트리 변환](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/) | ★ | 14장. 트리 | [50-1.py](4-non-linear-data-structures/ch14/50-1.py) | +| 51 | [이진 탐색 트리(BST)를 더 큰 수 합계 트리로](https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree/) | ★★ | 14장. 트리 | [51-1.py](4-non-linear-data-structures/ch14/51-1.py) | +| 52 | [이진 탐색 트리(BST) 합의 범위](https://leetcode.com/problems/range-sum-of-bst/) | ★ | 14장. 트리 | [52-1.py](4-non-linear-data-structures/ch14/52-1.py)
[52-2.py](4-non-linear-data-structures/ch14/52-2.py)
[52-3.py](4-non-linear-data-structures/ch14/52-3.py)
[52-4.py](4-non-linear-data-structures/ch14/52-4.py) | +| 53 | [이진 탐색 트리(BST) 노드 간 최소 거리](https://leetcode.com/problems/minimum-distance-between-bst-nodes/) | ★ | 14장. 트리 | [53-1.py](4-non-linear-data-structures/ch14/53-1.py)
[53-2.py](4-non-linear-data-structures/ch14/53-2.py) | +| 54 | [전위, 중위 순회 결과로 이진 트리 구축](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) | ★★ | 14장. 트리 | [54-1.py](4-non-linear-data-structures/ch14/54-1.py) | +| 55 | [배열의 K번째 큰 요소](https://leetcode.com/problems/kth-largest-element-in-an-array/) | ★★ | 15장. 힙 | [55-1.py](4-non-linear-data-structures/ch15/55-1.py)
[55-2.py](4-non-linear-data-structures/ch15/55-2.py)
[55-3.py](4-non-linear-data-structures/ch15/55-3.py)
[55-4.py](4-non-linear-data-structures/ch15/55-4.py) | +| 56 | [트라이 구현](https://leetcode.com/problems/implement-trie-prefix-tree/) | ★★ | 16장. 트라이 | [56-1.py](4-non-linear-data-structures/ch16/56-1.py) | +| 57 | [팰린드롬 페어](https://leetcode.com/problems/palindrome-pairs/) | ★★★ | 16장. 트라이 | [57-1.py](4-non-linear-data-structures/ch16/57-1.py)
[57-2.py](4-non-linear-data-structures/ch16/57-2.py) | +| 58 | [리스트 정렬](https://leetcode.com/problems/sort-list/) | ★★ | 17장. 정렬 | [58-1.py](5-algorithms/ch17/58-1.py)
[58-3.py](5-algorithms/ch17/58-3.py) | +| 59 | [구간 병합](https://leetcode.com/problems/merge-intervals/) | ★★ | 17장. 정렬 | [59-1.py](5-algorithms/ch17/59-1.py) | +| 60 | [삽입 정렬 리스트](https://leetcode.com/problems/insertion-sort-list/) | ★★ | 17장. 정렬 | [60-1.py](5-algorithms/ch17/60-1.py)
[60-2.py](5-algorithms/ch17/60-2.py) | +| 61 | [가장 큰 수](https://leetcode.com/problems/largest-number/) | ★★ | 17장. 정렬 | [61-1.py](5-algorithms/ch17/61-1.py) | +| 62 | [유효한 애너그램](https://leetcode.com/problems/valid-anagram/) | ★ | 17장. 정렬 | [62-1.py](5-algorithms/ch17/62-1.py) | +| 63 | [색 정렬](https://leetcode.com/problems/sort-colors/) | ★★ | 17장. 정렬 | [63-1.py](5-algorithms/ch17/63-1.py) | +| 64 | [원점에 K번째 가까운 점](https://leetcode.com/problems/k-closest-points-to-origin/) | ★★ | 17장. 정렬 | [64-1.py](5-algorithms/ch17/64-1.py) | +| 65 | [이진 검색](https://leetcode.com/problems/binary-search/) | ★ | 18장. 이진 검색 | [65-1.py](5-algorithms/ch18/65-1.py)
[65-2.py](5-algorithms/ch18/65-2.py)
[65-3.py](5-algorithms/ch18/65-3.py)
[65-4.py](5-algorithms/ch18/65-4.py) | +| 66 | [회전 정렬된 배열 검색](https://leetcode.com/problems/search-in-rotated-sorted-array/) | ★★ | 18장. 이진 검색 | [66-1.py](5-algorithms/ch18/66-1.py) | +| 67 | [두 배열의 교집합](https://leetcode.com/problems/intersection-of-two-arrays/) | ★ | 18장. 이진 검색 | [67-1.py](5-algorithms/ch18/67-1.py)
[67-2.py](5-algorithms/ch18/67-2.py)
[67-3.py](5-algorithms/ch18/67-3.py) | +| 68 | [두 수의 합 II](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/) | ★ | 18장. 이진 검색 | [68-1.py](5-algorithms/ch18/68-1.py)
[68-2.py](5-algorithms/ch18/68-2.py)
[68-3.py](5-algorithms/ch18/68-3.py)
[68-4.py](5-algorithms/ch18/68-4.py)
[68-5.py](5-algorithms/ch18/68-5.py) | +| 69 | [2D 행렬 검색 II](https://leetcode.com/problems/search-a-2d-matrix-ii/) | ★★ | 18장. 이진 검색 | [69-1.py](5-algorithms/ch18/69-1.py)
[69-2.py](5-algorithms/ch18/69-2.py) | +| 70 | [싱글 넘버](https://leetcode.com/problems/single-number/) | ★ | 19장. 비트 조작 | [70-1.py](5-algorithms/ch19/70-1.py) | +| 71 | [해밍 거리](https://leetcode.com/problems/hamming-distance/) | ★ | 19장. 비트 조작 | [71-1.py](5-algorithms/ch19/71-1.py) | +| 72 | [두 정수의 합](https://leetcode.com/problems/sum-of-two-integers/) | ★★★ | 19장. 비트 조작 | [72-1.py](5-algorithms/ch19/72-1.py)
[72-2.py](5-algorithms/ch19/72-2.py) | +| 73 | [UTF-8 검증](https://leetcode.com/problems/utf-8-validation/) | ★★ | 19장. 비트 조작 | [73-1.py](5-algorithms/ch19/73-1.py) | +| 74 | [1비트의 개수](https://leetcode.com/problems/number-of-1-bits/) | ★ | 19장. 비트 조작 | [74-1.py](5-algorithms/ch19/74-1.py)
[74-2.py](5-algorithms/ch19/74-2.py) | +| 75 | [최대 슬라이딩 윈도우](https://leetcode.com/problems/sliding-window-maximum/) | ★★★ | 20장. 슬라이딩 윈도우 | [75-1.py](5-algorithms/ch20/75-1.py)
[75-2.py](5-algorithms/ch20/75-2.py) | +| 76 | [부분 문자열이 포함된 최소 윈도우](https://leetcode.com/problems/minimum-window-substring/) | ★★★ | 20장. 슬라이딩 윈도우 | [76-1.py](5-algorithms/ch20/76-1.py)
[76-2.py](5-algorithms/ch20/76-2.py)
[76-3.py](5-algorithms/ch20/76-3.py) | +| 77 | [가장 긴 반복 문자 대체](https://leetcode.com/problems/longest-repeating-character-replacement/) | ★★ | 20장. 슬라이딩 윈도우 | [77-1.py](5-algorithms/ch20/77-1.py) | +| 78 | [주식을 사고 팔기 가장 좋은 시점 II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/) | ★ | 21장. 그리디 알고리즘 | [78-1.py](5-algorithms/ch21/78-1.py)
[78-2.py](5-algorithms/ch21/78-2.py) | +| 79 | [키에 따른 대기열 재구성](https://leetcode.com/problems/queue-reconstruction-by-height/) | ★★ | 21장. 그리디 알고리즘 | [79-1.py](5-algorithms/ch21/79-1.py) | +| 80 | [태스크 스케줄러](https://leetcode.com/problems/task-scheduler/) | ★★ | 21장. 그리디 알고리즘 | [80-1.py](5-algorithms/ch21/80-1.py) | +| 81 | [주유소](https://leetcode.com/problems/gas-station/) | ★★ | 21장. 그리디 알고리즘 | [81-1.py](5-algorithms/ch21/81-1.py)
[81-2.py](5-algorithms/ch21/81-2.py) | +| 82 | [쿠키 부여](https://leetcode.com/problems/assign-cookies/) | ★ | 21장. 그리디 알고리즘 | [82-1.py](5-algorithms/ch21/82-1.py)
[82-2.py](5-algorithms/ch21/82-2.py) | +| 83 | [과반수 엘리먼트](https://leetcode.com/problems/majority-element/) | ★ | 22장. 분할 정복 | [83-1.py](5-algorithms/ch22/83-1.py)
[83-2.py](5-algorithms/ch22/83-2.py)
[83-3.py](5-algorithms/ch22/83-3.py)
[83-4.py](5-algorithms/ch22/83-4.py) | +| 84 | [괄호를 삽입하는 여러가지 방법](https://leetcode.com/problems/different-ways-to-add-parentheses/) | ★★ | 22장. 분할 정복 | [84-1.py](5-algorithms/ch22/84-1.py) | +| 85 | [피보나치 수](https://leetcode.com/problems/fibonacci-number/) | ★ | 23장. 다이나믹 프로그래밍 | [85-1.py](5-algorithms/ch23/85-1.py)
[85-2.py](5-algorithms/ch23/85-2.py)
[85-3.py](5-algorithms/ch23/85-3.py)
[85-4.py](5-algorithms/ch23/85-4.py) | +| 86 | [최대 서브 배열](https://leetcode.com/problems/maximum-subarray/) | ★ | 23장. 다이나믹 프로그래밍 | [86-1.py](5-algorithms/ch23/86-1.py)
[86-2.py](5-algorithms/ch23/86-2.py) | +| 87 | [계단 오르기](https://leetcode.com/problems/climbing-stairs/) | ★ | 23장. 다이나믹 프로그래밍 | [87-1.py](5-algorithms/ch23/87-1.py)
[87-2.py](5-algorithms/ch23/87-2.py) | +| 88 | [집 도둑](https://leetcode.com/problems/house-robber/) | ★ | 23장. 다이나믹 프로그래밍 | [88-1.py](5-algorithms/ch23/88-1.py)
[88-2.py](5-algorithms/ch23/88-2.py) | | 89(문제 1) | 비밀 지도 | ★ | 부록 B. 카카오 공채 문제 풀이 | [1.py](appendix-B/1.py) | | 90(문제 2) | 다트 게임 | ★ | 부록 B. 카카오 공채 문제 풀이 | [2.py](appendix-B/2.py) | | 91(문제 3) | 캐시 | ★ | 부록 B. 카카오 공채 문제 풀이 | [3.py](appendix-B/3.py) |