본문 바로가기
Portpolio/java_algo_interview

자바 알고리즘 인터뷰 00. 시작

by Peter Choi 2023. 12. 10.
반응형

기간:  2023.12월 2주차 ~ 2024.02월 4주차

동기: 자바로 코딩 테스트를 준비하면서 알고리즘 풀이를 시작하고자 함

참고도서 : 자바 알고리즘 인터뷰 with 코틀린

https://product.kyobobook.co.kr/detail/S000209071463

 

자바 알고리즘 인터뷰 with 코틀린 | 박상길 - 교보문고

자바 알고리즘 인터뷰 with 코틀린 | 코딩 테스트와 알고리즘 인터뷰를 준비하는 개발자들을 위한 최고의 책 『파이썬 알고리즘 인터뷰』가 자바와 코틀린 코드로 무장하고 한층 업그레이드되어

product.kyobobook.co.kr

[1부] 코딩 인터뷰를 준비하며

1장 코딩 인터뷰 & 코딩 테스트

https://zpub.tistory.com/228

 

자바 알고리즘 인터뷰 01. 01장 코딩 인터뷰 & 코딩 테스트

1장부터 5장의 내용은 문제풀이보다는 이론적 배경에 대한 내용이라 가볍게 읽고 넘어가는 정도로 요약했다. 1장은 우선 국내에서 진행되는 코딩 테스트에 대한 내용이다. 코딩 테스트는 개발자

zpub.tistory.com

기업 인재 등용의 관문, 코딩 인터뷰
__코딩 인터뷰와 국내외 기업들의 평가 기준
__국내 기업들의 코딩 테스트 플랫폼 활용 현황
온라인 코딩 테스트의 사전 준비 사항
__연습장과 필기 도구
__어떤 프로그래밍 언어가 유리할까
__자신만의 코드 스니펫 준비
__모든 테스트 케이스를 통과하도록 풀어야 한다
__타임아웃이 발생하는 경우
__예외 처리를 잊지 말자
__잘못 접근한 풀이, 어떻게 대처할까
__코딩 도구가 필요할까
__IDE에 부정적인 면접관이 있다면
__REPL 도구로 코드를 검증하자
온라인 코딩 테스트 플랫폼의 특징과 활용
__리트코드
__프로그래머스

[2부] 자바 & 코틀린

2장 자바, 세상에서 가장 유명한 언어

https://zpub.tistory.com/229

 

자바 알고리즘 인터뷰 02. 자바

자바는 가장 많이 사용되는 프로그램 언어이기도 하다. 저자는 자바의 범용성과 우수성을 분리하는 시야를 보여주는데, 마치 영어가 언어학적으로 가장 우수해서 영어를 많이 쓰는 것이 아닌

zpub.tistory.com

자바의 역사
자바의 주요 특징
__객체 지향 프로그래밍 언어
__함수형 프로그래밍 언어
자바의 도구
__즉시 실행 가능한 JShell
__자바는 어떻게 빌드하고 어떻게 실행할까
JVM 기반 언어의 등장

3장 코틀린, 구글이 인정한 공식 언어

https://zpub.tistory.com/247

 

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

- 코틀린은 제트브레인 사에서 만든 프로그래밍 언어 - 인텔리제이 IDE를 서비스하는 회사 - 안드로이드 앱개발 분야에서 활발하게 사용되기 시작 - 학교나 연구소에서 만들어진 다른 많은 프로

zpub.tistory.com

코틀린의 주요 특징
__실용성
__상호운용성
__안전성
__우아함
코틀린의 기본 문법
__깔끔한 for 반복문
__정갈한 when 조건문
__편리한 함수 선언
__함수형 프로그래밍 언어
__가시성 제어자
__확장 함수
코틀린은 어떻게 빌드하고 어떻게 실행할까
__코틀린은 과연 느릴까

4장 자료형

https://zpub.tistory.com/248

 

자바 알고리즘 인터뷰 04. 자료형

-자료형의 종류 - 원시 자료형 - 참조 자료형 - 언어별 자료형 구성 - 코틀린, 파이썬 : 참조 자료형 - 자바: 원시, 참조 자료형 혼합 - C언어: 원시 자료형 - 컬렉션 프레임워크 - HashMap.java - HashSet.jav

zpub.tistory.com

자바는 어떤 자료형을 제공할까
__원시 자료형
__참조 자료형
__원시 자료형과 참조 자료형의 속도 비교
자바 컬렉션 프레임워크의 등장
__가장 자주 쓰게 될 리스트
__가장 유용하게 쓰게 될 맵
초기 자료형의 성능 문제
무한대 크기의 숫자를 저장할 수 있는 자료형
코틀린은 어떤 자료형을 제공할까
__코틀린 자료형의 속도는 과연 빠를까
코틀린은 컬렉션 프레임워크를 어떻게 구현했을까
__클래스의 기능을 확장하는 코틀린의 확장 함수
__코틀린이 별도로 구현한 컬렉션 인터페이스
자바 컬렉션 프레임워크의 실행 속도

5장 빅오
빅오

https://zpub.tistory.com/249

 

자바 알고리즘 인터뷰 05. 빅오 표기법

보통 시간 복잡도를 구할 때는 연산 횟수를 고차 다항식으로 나타내서 차수로 표기하는 방법을 사용한다 - O(1) : 해시 테이블 조회, 삽입 연산 / 연결리스트 끝 값 삽입 연산 - O(log n) : 이진 탐색 -

zpub.tistory.com

__n2과 2n의 비교
__빅오를 계산하는 실용적인 방법
__상한과 최악
__분할 상환 분석
__병렬화
__복잡도의 특징
자바 컬렉션 프레임워크의 빅오
__리스트 시간 복잡도
__맵 시간 복잡도
데크 시간 복잡도

6장 문자열 처리

https://zpub.tistory.com/254

 

자바 알고리즘 인터뷰 06. 문자열 처리

[ch6/P1] L125. 유효한 팰린드롬 - 대괄호와 캐럿 기호, 범위를 나타내는 하이픈 기호를 통해 정규 표현식의 개념을 사용함 public class P1 { public static void main(String args[]) { String input = "AMAIIAMA"; P1 obj = new

zpub.tistory.com

[문제01] 유효한 팰린드롬
[문제02] 문자열 뒤집기
[문제03] 로그 파일 재정렬
[문제04] 가장 흔한 단어
[문제05] 그룹 애너그램
[문제06] 가장 긴 팰린드롬 부분 문자열

[3부] 선형 자료구조

7장 배열

https://zpub.tistory.com/255

 

자바 알고리즘 인터뷰 07. 배열

[ch7/P7] L1. 두 수의 합 import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class P7 { public static void main(String args[]) { int[] nums = {2, 7, 11, 15}; //int[] 배열 int target = 9; //합으로 나와야 하는 수 Sys

zpub.tistory.com

동적 배열
[문제07] 두 수의 합
[문제08] 빗물 트래핑
[문제09] 세 수의 합
[문제10] 배열 파티션 I
[문제11] 자신을 제외한 배열의 곱
[문제12] 주식을 사고팔기 가장 좋은 시점

8장 연결 리스트

https://zpub.tistory.com/256

 

자바 알고리즘 인터뷰 08. 연결 리스트

//공통적으로 쓰이는 클래스 class ListNode { int val; ListNode next; ListNode(int val) { this.val = val; } public static void printList(ListNode head) { ListNode current = head; while (current != null) { System.out.print(current.val + "-> "); cur

zpub.tistory.com

[문제13] 팰린드롬 연결 리스트
[문제14] 두 정렬 리스트의 병합
[문제15] 역순 연결 리스트
[문제16] 두 수의 덧셈
[문제17] 페어의 노드 스왑
[문제18] 홀짝 연결 리스트
[문제19] 역순 연결 리스트 II

9장 스택, 큐

https://zpub.tistory.com/257

 

자바 알고리즘 인터뷰 09. 스택, 큐

[ch9/P23] L225. 큐를 이용한 스택 구현 import java.util.LinkedList; import java.util.Queue; public class P23 { private Queue queue1; private Queue queue2; public P23() { queue1 = new LinkedList(); queue2 = new LinkedList(); } public void push(int x

zpub.tistory.com

스택

자바에서 활용하기
__자바의 큐 선언
__자바의 스택 선언
__스레드 안전이 필요한 경우
[문제20] 유효한 괄호
[문제21] 중복 문자 제거
[문제22] 일일 온도
[문제23] 큐를 이용한 스택 구현
[문제24] 스택을 이용한 큐 구현
[문제25] 원형 큐 디자인

10장 데크, 우선순위 큐
데크
[문제26] 원형 데크 디자인
우선순위 큐
[문제27] k개 정렬 리스트 병합
[문제28] 원점에서 가장 가까운 k개의 점
[문제29] 더 맵게

11장 해시 테이블
해시
__생일 문제
__비둘기집 원리
__로드 팩터
__해시 함수
충돌
__개별 체이닝
__오픈 어드레싱
__언어별 해시 테이블 구현 방식
[문제30] 해시맵 디자인
[문제31] 보석과 돌
[문제32] 중복 문자 없는 가장 긴 부분 문자열
[문제33] 상위 k 빈도 엘리먼트
[문제34] 완주하지 못한 선수

[4부] 비선형 자료구조

12장 그래프
오일러 경로
해밀턴 경로
그래프 순회
__DFS(깊이 우선 탐색)
__BFS(너비 우선 탐색)
백트래킹
제약 충족 문제
[문제35] 섬의 개수
[문제36] 전화번호 문자 조합
[문제37] 순열
[문제38] 조합
[문제39] 조합의 합
[문제40] 부분집합
[문제41] 일정 재구성
[문제42] 여행 경로
[문제43] 코스 일정

13장 최단 경로 문제
[문제44] 네트워크 딜레이 타임
[문제45] k 경유지 내 가장 저렴한 항공권
[문제46] 게임 맵 최단 거리

14장 트리
트리의 각 명칭
그래프와 트리의 차이점
이진 트리
[문제47] 이진 트리의 최대 깊이
[문제48] 이진 트리의 직경
[문제49] 가장 긴 동일 값의 경로
[문제50] 이진 트리 반전
[문제51] 두 이진 트리 병합
[문제52] 이진 트리 직렬화 & 역직렬화
[문제53] 균형 이진 트리
[문제54] 최소 높이 트리
이진 탐색 트리(BST)
__자가 균형 이진 탐색 트리
[문제55] 정렬된 배열의 이진 탐색 트리 변환
[문제56] 이진 탐색 트리(BST)를 더 큰 수 합계 트리로
[문제57] 이진 탐색 트리(BST) 합의 범위
[문제58] 이진 탐색 트리(BST) 노드 간 최솟값
트리 순회
__전위 순회
__중위 순회
__후위 순회
[문제59] 전위, 중위 순회 결과로 이진 트리 구축

15장 힙
힙 연산
__삽입
__추출
[문제60] 배열의 k번째 큰 엘리먼트
[문제61] 이중 우선순위 큐

16장 트라이
[문제62] 트라이 구현
[문제63] 팰린드롬 페어

[5부] 알고리즘

17장 정렬
버블 정렬
삽입 정렬
병합 정렬
퀵 정렬
안정 정렬과 불안정 정렬
[문제64] 리스트 정렬
[문제65] 구간 병합
[문제66] 삽입 정렬 리스트
[문제67] 가장 큰 수
[문제68] 유효한 애너그램
[문제69] 색 정렬

18장 이진 검색
[문제70] 이진 검색
[문제71] 회전 정렬된 배열 검색
[문제72] 두 배열의 교집합
[문제73] 두 수의 합 II
[문제74] 2D 행렬 검색 II
[문제75] 입국심사

19장 비트 조작
부울 연산자
비트 연산자
비트 조작 퀴즈
__자릿수 제한 비트 연산
2의 보수
__2의 보수 숫자 표현
__비트 연산자 NOT
[문제76] 싱글 넘버
[문제77] 해밍 거리
[문제78] 두 정수의 합
[문제79] UTF-8 검증
[문제80] 1비트의 개수

20장 슬라이딩 윈도우
[문제81] 최대 슬라이딩 윈도우
[문제82] 부분 문자열이 포함된 최소 윈도우
[문제83] 가장 긴 반복 문자 대체

21장 그리디 알고리즘
배낭 문제
동전 바꾸기 문제
가장 큰 합
[문제84] 주식을 사고팔기 가장 좋은 시점 II
[문제85] 키에 따른 대기열 재구성
[문제86] 태스크 스케줄러
[문제87] 주유소
[문제88] 쿠키 부여

22장 분할 정복
[문제89] 과반수 엘리먼트
[문제90] 괄호를 삽입하는 여러 가지 방법

23장 다이나믹 프로그래밍
최적 부분 구조
중복된 하위 문제들
다이나믹 프로그래밍 방법론
__상향식
__하향식
[문제91] 피보나치 수
0-1 배낭 문제
[문제92] 최대 서브 배열
[문제93] 계단 오르기
[문제94] 집 도둑
[문제95] 도둑질

부록 2022년 카카오 공채 만점 가이드
[문제96] 신고 결과 받기
[문제97] k진수에서 소수 개수 구하기
[문제98] 주차 요금 계산
[문제99] 양궁대회
[문제100] 양과 늑대
[문제101] 파괴되지 않은 건물
[문제102] 사라지는 발판

 

 

 

 

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

- 코틀린은 제트브레인 사에서 만든 프로그래밍 언어 - 인텔리제이 IDE를 서비스하는 회사 - 안드로이드 앱개발 분야에서 활발하게 사용되기 시작 - 학교나 연구소에서 만들어진 다른 많은 프로

zpub.tistory.com

 

 

 

자바 알고리즘 인터뷰 01. 01장 코딩 인터뷰 & 코딩 테스트

1장부터 5장의 내용은 문제풀이보다는 이론적 배경에 대한 내용이라 가볍게 읽고 넘어가는 정도로 요약했다. 1장은 우선 국내에서 진행되는 코딩 테스트에 대한 내용이다. 코딩 테스트는 개발자

zpub.tistory.com

 

반응형

댓글