
1. 기본 입출력 2. 자료형과 형변환 3. 배열 4. 문자열 처리 5. 반복문과 조건문 6. 컬렉션(Collection) 7. 정렬 8. 수학 관련 9. 자주 사용하는 패턴

1. 스택(Stack)과 큐(Queue) 2. 우선순위 큐(Priority Queue) 3. TreeSet과 TreeMap 4. 재귀와 백트래킹 5.BFS와 DFS 6. 이진 탐색 7. 동적 계획법(DP) 기초 8. 투 포인터와 슬라이딩 윈도우 9. 비트

1. 고급 그래프 알고리즘 * 다익스트라(최단 경로) 플로이드-워셜 (모든 쌍 최단 경로) 2. 위상 정렬(Toplogical Sort) 3. 최소 스패닝 트리(MST) 크루스칼 알고리즘 4. 고급 문자열 알고리즘 KMP 알고리즘 5. * 세그먼트 트리(Seg

코딩 테스트에서 대용량 입출력을 처리할 때는 Scanner와 System.out.println보다 BufferedReader/Writer가 훨씬 빠릅니다!적은 입출력: 차이 미미대량 입출력: 10~100배 성능 차이 시간 제한 문제: BufferedReader/Writ

한 문장 요약: 하나의 긴 문자열을 공백 기준으로 잘라서, 필요할 때마다 하나씩 꺼내 쓸 수 있게 해주는 도구결론: 대용량 입력에서는 StringTokenizer가 가장 빠르고 효율적StringTokenizer = 과자 상자한 번 꺼낸 과자는 다시 넣을 수 없음!입력

📌 boolean 배열이란? true/false 값만 저장하는 배열로, 특정 조건의 체크 여부를 표시할 때 사용합니다. 🎯 언제 사용할까? 사용하면 좋은 경우 출석 체크 (출석/결석) 방문 여부 체크 (방문함/안함) 제출 여부 체크 (제출/미제출) 존재 여부

핵심 개념 배열의 특정 구간을 역순으로 만드는 알고리즘 동작 원리 양 끝에서 중앙으로 핵심: 양 끝 요소를 교환하면서 포인터를 중앙으로 이동 코드 라인별 설명 1. while (start end`: 이미 교차 → 종료 왜 <=가 아니라 <일까? 2. 교

문자열을 문자 배열로 변환하는 메서드왜 사용?문자열의 각 문자를 하나씩 처리할 때 편리enhanced for문과 함께 사용하면 코드가 간결해짐문자(char)를 다루는 유틸리티 클래스문자열을 효율적으로 조합할 때 사용String vs StringBuilder입력: HeL

제곱근(square root)을 구하는 메서드예요.항상 double을 반환해요어떤 수가 완전제곱수인지 확인할 때 유용해요.Math.pow(a, b) - 거듭제곱Math.abs(a) - 절댓값Math.max(a, b) - 최댓값Math.min(a, b) - 최솟값핵심:

크기가 자동으로 늘어나는 가변 길이 배열이에요.이 한 줄이 뭘 의미하는지 완벽하게 알아봅시다!의미: "Integer(정수)를 담을 수 있는 ArrayList를 만들고, list라는 이름으로 사용하겠다"이유: <> 안에는 클래스 타입만 올 수 있어요.결과 개수를 모