728x90

알고리즘 5

Java에서 O(n^2)과 O(n log n) 알고리즘 정리

알고리즘의 시간 복잡도는 코드 실행 속도를 예측하는 중요한 척도입니다. 이번 포스팅에서는 대표적인 O(n^2) 알고리즘과 O(n log n) 알고리즘을 코드 예제와 함께 정리하겠습니다.O(n^2) 알고리즘O(n^2) 알고리즘은 입력 크기가 증가할수록 수행 시간이 제곱에 비례하여 증가하는 알고리즘입니다. 대표적으로 버블 정렬(Bubble Sort), 선택 정렬(Selection Sort), 삽입 정렬(Insertion Sort), 브루트 포스(Brute Force) 알고리즘 등이 있습니다.1. 버블 정렬 (Bubble Sort)버블 정렬은 인접한 두 원소를 비교하여 정렬하는 방식으로, 최악의 경우 O(n^2)의 시간 복잡도를 가집니다.public class BubbleSort { public stat..

Java Algo Core 20 2025.02.08

Bubble Sort, Selection Sort, Insertion Sort: 알고리즘 비교

Bubble Sort, Selection Sort, Insertion Sort: 알고리즘 비교컴퓨터 과학에서 정렬 알고리즘은 데이터를 순서대로 배열하는 방법을 의미합니다. 여러 종류의 정렬 알고리즘이 존재하지만, 그 중에서도 버블 정렬(Bubble Sort), 선택 정렬(Selection Sort), 삽입 정렬(Insertion Sort)은 가장 기본적인 정렬 알고리즘으로 자주 다뤄집니다. 이 세 가지 알고리즘은 모두 비교 기반의 정렬 방식이며, 그 동작 방식에 차이가 있습니다.이번 글에서는 버블 정렬, 선택 정렬, 삽입 정렬의 동작 원리와 성능을 비교해보겠습니다.1. Bubble Sort (버블 정렬)동작 원리버블 정렬은 리스트의 인접한 두 원소를 비교하여, 크기가 더 큰 원소를 뒤로 보내는 방식입니다..

Java Algo Core 20 2025.02.08

완전탐색과 시뮬레이션 개념

완전탐색과 시뮬레이션 개념목차 1. 완전탐색(Brute Force) 2. 시뮬레이션(Simulation) 3. 완전탐색과 시뮬레이션 차이점 4. 완전탐색 vs 시뮬레이션 사용 사례 5. 예제 문제들1. 완전탐색(Brute Force)개념완전탐색은 가능한 모든 경우를 전부 탐색하여 정답을 찾아내는 알고리즘입니다. 최적화 없이 모든 경우를 시도해보므로 "Brute Force"라고 불립니다.특징 단점: 시간 복잡도가 높아 비효율적일 수 있음. 장점: 모든 경우를 탐색하므로 정답을 놓치지 않음.예시 순열/조합을 이용한 문제 해결 배열 내 특정 값 찾기 N-Queens 문제2. 시뮬레이션(Simulation)개념시뮬레이션은 문제의 조건을 실제 상황처럼 구현하..

Java Algo Core 20 2025.02.04

트레버스(Traverse)

목차트레버스(Traverse) 기본 개념트레버스는 "순회"라는 의미로, 트리나 그래프 같은 자료 구조의 각 노드를 방문하는 방법을 말합니다. 트리에서 트레버스를 할 때는 다음과 같은 방식으로 트리 구조를 순회할 수 있습니다.전위 순회 (Pre-order Traversal)순서: 루트 → 왼쪽 → 오른쪽주로 트리를 만들 때 사용됩니다.중위 순회 (In-order Traversal)순서: 왼쪽 → 루트 → 오른쪽이 방식은 이진 검색 트리에서 유용하게 사용됩니다.후위 순회 (Post-order Traversal)순서: 왼쪽 → 오른쪽 → 루트주로 트리의 삭제나 후처리 작업에 사용됩니다.레벨 순회 (Level-order Traversal)순서: 각 레벨을 차례대로 방문큐를 사용하여 구현합니다.트리 구조 예시트리..

Java Algo Core 20 2025.01.18

Java 코딩 테스트 필수 메서드 및 알고리즘 정리

목차1. 자바 필수 메서드문자열 처리 메서드// charAt(int index): 문자열에서 특정 인덱스의 문자 반환String str = "Hello";char c = str.charAt(0); // 'H'// substring(int beginIndex, int endIndex): 부분 문자열 추출String sub = str.substring(1, 3); // "el"// split(String regex): 특정 구분자로 문자열 분리String[] parts = str.split("l"); // ["He", "", "o"]// indexOf(String str): 특정 문자열의 첫 번째 인덱스 반환int idx = str.indexOf("e"); // 1// toCharArray(): 문자열을 문..

Java Algo Core 20 2025.01.18
728x90