/java-algorithm-interview

<자바 알고리즘 인터뷰 with 코틀린> 102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트

Primary LanguageJava

자바 알고리즘 인터뷰 with 코틀린

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

《자바 알고리즘 인터뷰 with 코틀린》은 다음 판매처에서 구매하실 수 있습니다.

및 전국 교보문고 매장

★ 정오표: (아직 등록된 정오사항이 없습니다)
★ 도서정보: https://www.onlybook.co.kr/entry/java-algorithm-interview

★ 참고: 《파이썬 알고리즘 인터뷰》 https://github.com/onlybooks/python-algorithm-interview

마인드맵

문제 풀이

번호 제목 난이도 풀이 코드
1 유효한 팰린드롬 6장. 문자열 조작 P1_1.java
P1_2.java
P1_3.kt
2 문자열 뒤집기 6장. 문자열 조작 P2_1.java
P2_2.kt
3 로그 파일 재정렬 6장. 문자열 조작 P3_1.java
P3_2.kt
4 가장 흔한 단어 6장. 문자열 조작 P4_1.java
P4_2.kt
5 그룹 애너그램 ★★ 6장. 문자열 조작 P5_1.java
P5_2.kt
6 가장 긴 팰린드롬 부분 문자열 ★★ 6장. 문자열 조작 P6_1.java
P6_2.kt
7 두 수의 합 7장. 배열 P7_1.java
P7_2.java
P7_3.java
P7_4.java
P7_5.kt
8 빗물 트래핑 ★★★ 7장. 배열 P8_1.java
P8_2.java
P8_3.kt
9 세 수의 합 ★★ 7장. 배열 P9_1.java
P9_2.java
P9_3.kt
10 배열 파티션 I 7장. 배열 P10_1.java
P10_2.java
P10_3.kt
11 자신을 제외한 배열의 곱 ★★ 7장. 배열 P11_1.java
P11_2.kt
12 주식을 사고팔기 가장 좋은 시점 7장. 배열 P12_1.java
P12_2.java
P12_3.kt
13 팰린드롬 연결 리스트 8장. 연결 리스트 P13_1.java
P13_2.java
P13_3.java
P13_4.kt
14 두 정렬 리스트의 병합 8장. 연결 리스트 P14_1.java
P14_2.kt
15 역순 연결 리스트 8장. 연결 리스트 P15_1.java
P15_2.java
P15_3.kt
16 두 수의 덧셈 ★★ 8장. 연결 리스트 P16_1.java
P16_2.java
P16_3.kt
17 페어의 노드 스왑 ★★ 8장. 연결 리스트 P17_1.java
P17_2.java
P17_3.java
P17_4.kt
18 홀짝 연결 리스트 ★★ 8장. 연결 리스트 P18_1.java
P18_2.kt
19 역순 연결 리스트 II ★★ 8장. 연결 리스트 P19_1.java
P19_2.kt
20 유효한 괄호 9장. 스택, 큐 P20_1.java
P20_2.kt
21 중복 문자 제거 ★★★ 9장. 스택, 큐 P21_1.java
P21_2.java
P21_3.kt
22 일일 온도 ★★ 9장. 스택, 큐 P22_1.java
P22_2.kt
23 큐를 이용한 스택 구현 9장. 스택, 큐 P23_1.java
P23_2.kt
24 스택을 이용한 큐 구현 9장. 스택, 큐 P24_1.java
P24_2.kt
25 원형 큐 디자인 ★★ 9장. 스택, 큐 P25_1.java
P25_2.kt
26 원형 데크 디자인 ★★ 10장. 데크, 우선순위 큐 P26_1.java
P26_2.kt
27 k개 정렬 리스트 병합 10장. 데크, 우선순위 큐 P27_1.java
P27_2.kt
28 원점에 가장 가까운 k개의 점 ★★ 10장. 데크, 우선순위 큐 P28_1.java
P28_2.java
P28_3.kt
29 더 맵게 10장. 데크, 우선순위 큐 P29_1.java
30 해시맵 디자인 11장. 해시 테이블 P30_1.java
P30_2.kt
31 보석과 돌 11장. 해시 테이블 P31_1.java
P31_2.java
P31_3.kt
32 중복 문자 없는 가장 긴 부분 문자열 ★★ 11장. 해시 테이블 P32_1.java
P32_2.kt
33 상위 k 빈도 엘리먼트 ★★ 11장. 해시 테이블 P33_1.java
P33_2.java
P33_3.kt
34 완주하지 못한 선수 11장. 해시 테이블 P34_1.java
P34_2.kt
35 섬의 개수 ★★ 12장. 그래프 P35_1.java
P35_2.kt
36 전화번호 문자 조합 ★★ 12장. 그래프 P36_1.java
P36_2.kt
37 순열 ★★ 12장. 그래프 P37_1.java
P37_2.kt
38 조합 ★★ 12장. 그래프 P38_1.java
P38_2.kt
39 조합의 합 ★★ 12장. 그래프 P39_1.java
P39_2.kt
40 부분집합 ★★ 12장. 그래프 P40_1.java
P40_2.kt
41 일정 재구성 ★★ 12장. 그래프 P41_1.java
P41_2.java
P41_3.kt
42 여행 경로 ★★ 12장. 그래프 P42_1.java
P42_2.kt
43 코스 일정 ★★ 12장. 그래프 P43_1.java
P43_2.java
P43_3.kt
44 네트워크 딜레이 타임 ★★ 13장. 최단 경로 문제 P44_1.java
P44_2.kt
45 k 경유지 내 가장 저렴한 항공권 ★★ 13장. 최단 경로 문제 P45_1.java
P45_2.java
P45_3.kt
46 게임 맵 최단 거리 ★★ 13장. 최단 경로 문제 P46_1.java
47 이진 트리의 최대 깊이 14장. 트리 P47_1.java
P47_2.java
P47_3.kt
48 이진 트리의 직경 14장. 트리 P48_1.java
P48_2.kt
49 가장 긴 동일 값의 경로 14장. 트리 P49_1.java
P49_2.kt
50 이진 트리 반전 14장. 트리 P50_1.java
P50_2.java
P50_3.java
P50_4.java
P50_5.java
P50_6.kt
51 두 이진 트리 병합 14장. 트리 P51_1.java
P51_2.kt
52 이진 트리 직렬화 & 역직렬화 ★★★ 14장. 트리 P52_1.java
P52_2.kt
53 균형 이진 트리 14장. 트리 P53_1.java
P53_2.kt
54 최소 높이 트리 ★★ 14장. 트리 P54_1.java
P54_2.kt
55 정렬된 배열의 이진 탐색 트리 변환 14장. 트리 P55_1.java
P55_2.kt
56 이진 탐색 트리(BST)를 더 큰 수 합계 트리로 ★★ 14장. 트리 P56_1.java
P56_2.kt
57 이진 탐색 트리(BST) 합의 범위 14장. 트리 P57_1.java
P57_2.java
P57_3.java
P57_4.java
P57_5.kt
58 이진 탐색 트리(BST) 노드 간 최솟값 14장. 트리 P58_1.java
P58_2.java
P58_3.kt
59 전위, 중위 순회 결과로 이진 트리 구축 ★★ 14장. 트리 P59_1.java
P59_2.java
P59_3.kt
60 배열의 k번째 큰 엘리먼트 ★★ 15장. 힙 P60_1.java
P60_2.java
P60_3.kt
61 이중 우선순위 큐 ★★★ 15장. 힙 P61_1.java
P61_2.java (예정)
P61_3.kt
62 트라이 구현 ★★ 16장. 트라이 P62_1.java
P62_2.kt
63 팰린드롬 페어 ★★★ 16장. 트라이 P63_1.java
P63_2.java
P63_3.kt
64 리스트 정렬 ★★ 17장. 정렬 P64_1.java
P64_2.java
P64_3.kt
65 구간 병합 ★★ 17장. 정렬 P65_1.java
P65_2.kt
66 삽입 정렬 리스트 ★★ 17장. 정렬 P66_1.java
P66_2.java
P66_3.kt
67 가장 큰 수 ★★ 17장. 정렬 P67_1.java
P67_2.kt
68 유효한 애너그램 17장. 정렬 P68_1.java
P68_2.kt
P68_3.kt
69 색 정렬 ★★ 17장. 정렬 P69_1.java
P69_2.kt
70 이진 검색 18장. 이진 검색 P70_1.java
P70_2.java
P70_3.java
P70_4.java
P70_5.kt
71 회전 정렬된 배열 검색 ★★ 18장. 이진 검색 P71_1.java
P71_2.kt
72 두 배열의 교집합 18장. 이진 검색 P72_1.java
P72_2.java
P72_3.java
P72_4.kt
73 두 수의 합 II 18장. 이진 검색 P73_1.java
P73_2.java
P73_3.java
P73_4.kt
74 2D 행렬 검색 II ★★ 18장. 이진 검색 P74_1.java
P74_2.kt
75 입국심사 ★★★ 18장. 이진 검색 P75_1.java
P75_2.kt
76 싱글 넘버 19장. 비트 조작 P76_1.java
P76_2.kt
77 해밍 거리 19장. 비트 조작 P77_1.java
P77_2.kt
78 두 정수의 합 ★★★ 19장. 비트 조작 P78_1.java
P78_2.java
P78_3.kt
79 UTF-8 검증 ★★ 19장. 비트 조작 P79_1.java
P79_2.kt
80 1비트의 개수 19장. 비트 조작 P80_1.java
P80_2.java
P80_3.kt
81 최대 슬라이딩 윈도우 ★★★ 20장. 슬라이딩 윈도우 P81_1.java
P81_2.java
P81_3.java
P81_4.kt
82 부분 문자열이 포함된 최소 윈도우 ★★★ 20장. 슬라이딩 윈도우 P82_1.java
P82_2.java
P82_3.kt
83 가장 긴 반복 문자 대체 ★★ 20장. 슬라이딩 윈도우 P83_1.java
P83_2.kt
84 주식을 사고팔기 가장 좋은 시점 II 21장. 그리디 알고리즘 P84_1.java
P84_2.kt
85 키에 따른 대기열 재구성 ★★ 21장. 그리디 알고리즘 P85_1.java
P85_2.kt
86 태스크 스케줄러 ★★ 21장. 그리디 알고리즘 P86_1.java
P86_2.kt
87 주유소 ★★ 21장. 그리디 알고리즘 P87_1.java
P87_2.java
P87_3.kt
88 쿠키 부여 21장. 그리디 알고리즘 P88_1.java
P88_2.kt
89 과반수 엘리먼트 22장. 분할 정복 P89_1.java
P89_2.java
P89_3.java
P89_4.kt
90 괄호를 삽입하는 여러가지 방법 ★★ 22장. 분할 정복 P90_1.java
P90_2.java
P90_3.kt
91 피보나치 수 23장. 다이나믹 프로그래밍 P91_1.java
P91_2.java
P91_3.java
P91_4.java
P91_5.kt
92 최대 서브 배열 23장. 다이나믹 프로그래밍 P92_1.java
P92_2.java
P92_3.java
P92_4.kt
93 계단 오르기 23장. 다이나믹 프로그래밍 P93_1.java
P93_2.java
P93_3.kt
94 집 도둑 23장. 다이나믹 프로그래밍 P94_1.java
P94_2.java
P94_3.kt
95 도둑질 ★★★ 23장. 다이나믹 프로그래밍 P95_1.java
96(문제 1) 신고 결과 받기 부록. 2022년 카카오 공채 만점 가이드 P96_1.java
P96_2.kt
97(문제 2) k진수에서 소수 개수 구하기 ★★ 부록. 2022년 카카오 공채 만점 가이드 P97_1.java
P97_2.java
P97_3.java
P97_4.java
P97_5.kt
98(문제 3) 주차 요금 계산 ★★ 부록. 2022년 카카오 공채 만점 가이드 P98_1.java
P98_2.kt
99(문제 4) 양궁대회 ★★ 부록. 2022년 카카오 공채 만점 가이드 P99_1.java
P99_2.kt
100(문제 5) 양과 늑대 ★★★ 부록. 2022년 카카오 공채 만점 가이드 P100_1.java
P100_2.kt
101(문제 6) 파괴되지 않은 건물 ★★★ 부록. 2022년 카카오 공채 만점 가이드 P101_2.java
P101_3.kt
102(문제 7) 사라지는 발판 ★★★ 부록. 2022년 카카오 공채 만점 가이드 P102_1.java
P102_2.kt

기타 코드