본문 바로가기

Algorithm3

시간 복잡도 (Time Complexity) / 공간 복잡도 (Space Complexity) ⏰ 시간 복잡도 (Time Complexity)입력 크기 n이 증가할 때, 연산 횟수가 얼마나 증가하는 지를 나타낸 지표연산 횟수 증가 비율을 나타내는 수치이며, 보통 Big-O 표기법 사용💡 Big-O 표기법 - 최악의 경우 기준으로 증가 속도를 표현하는 방식 - 상수는 무시 [EX.Big-O]O(1)O(n)O(n^2)O(log n)O(n log n)// 상수는 무시3n + 5 → O(n)5n^2 + 10n + 1 → O(n^2) ✔️ 시간 복잡도 성능 비교O(1) [Big-O Complexity] ✔️ 계산 방법🔹n번 실행 : O(n)반복문 횟수만큼 실행여러 개의 독립 루프도 여기에 해당 (ex. n+n+n → 3n → 상수는 무시되므로 결과는 O(n))단순 재귀 (n번 호출)//.. 2026. 2. 25.
[Java/백준] 1182번 : 부분수열의 합 👩‍🏫 문제 🚩 풀이 방법애초에 Brute Force 문제를 찾아서 풀었기 때문에 모든 경우의 수를 탐색해야 한다는 전제 하에, 모든 경우의 수(부분 수열)를 탐색하기 위해 DFS를 사용했다. 1️⃣ 풀이 1. (Stack 사용)처음에는 괜히 재귀를 안 쓰고 싶어서 Stack을 사용해 while문으로 구현을 했는데 메모리 사용량이 장난이 아니고 속도도 다른 사람들에 비해 매우 느렸다. - 소스코드private void getCases(int[] sequence, int N, int S) { Stack stack = new Stack(); int count = 0; stack.push(new int[]{0, -1}); // sum, index while(!stack... 2026. 2. 23.
정렬 알고리즘 정리 🎶 단순 정렬시간 복잡도 O(n2)효율이 좋지 않음 버블 정렬 (Bubble Sort)이웃한 두 요소의 대소 관계를 비교해 교환을 반복 (가장 기본적인 정렬)n개 요소의 정렬이 모두 끝나려면 n-1회의 패스가 수행되어야 함하나의 패스에서 요소 간의 교환이 이루어지지 않았다면 정렬이 완료된 상태로 간주하여 정렬 작업 중단나아가 특정 인덱스부터 요소 간의 교환이 이루어지지 않았다면 해당 인덱스까지는 정렬 완료 상태로 간주for(int i = 0; i i; j--) { if(a[j-1] > a[j]) { // 앞의 요소와 비교 및 교환 swap(a, j, j-1); chk++; } } if(chk == 0) { break; } // 패스 내에서 요소 간 교환이 이루어지지 않았으므로 정.. 2025. 12. 28.