본문 바로가기

CS & 알고리즘/알고리즘

(7)
정렬 알고리즘 완전 정복 - O(N²)부터 O(N log N)까지, 정렬 알고리즘 비교 📌 1. 정렬이란? 왜 중요한가?정렬이 필요한 이유 (예시: 탐색 최적화, 데이터 처리)실제 활용 예시: 데이터베이스 인덱싱, 코딩 테스트, AI 데이터 전처리📌 2. 정렬 알고리즘 분류유형정렬 알고리즘시간복잡도특징O(N²) (기본 정렬)버블 정렬, 선택 정렬, 삽입 정렬O(N²)느림, 기초 개념 익히기 좋음O(N log N) (고급 정렬)퀵 정렬, 병합 정렬, 힙 정렬O(N log N)실전에서 많이 사용O(N) (특수 정렬)카운팅 정렬, 기수 정렬, 버킷 정렬O(N)특정 조건에서만 사용 가능📌 3. 기본 정렬 알고리즘 (O(N²))✅ 3-1. 버블 정렬 (Bubble Sort)개념: 인접한 두 원소를 비교하여 교환하는 방식시간복잡도: O(N²)특징: 구현은 쉽지만 비효율적Java 구현 예제publ..
알고리즘 3개월 마스터 플랜 - 1일차 https://sober-developer.tistory.com/89 알고리즘 공부 시작하기 - 3개월 알고리즘 마스터 플랜계기사실 계기도 많았고 시도도 많았다.알고리즘 공부는 항상 해왔지만 '돌아간다 신난다'의 안 좋은 습관이 있었고 슬프게도 내가 그걸 너무 재밌어해서 계속 고치고 싶지 않았다.하지만 이정sober-developer.tistory.com 알고리즘 공부 '제대로' 시작하기 1일차! 1주차 포스팅은 여기!https://sober-developer.tistory.com/90 알고리즘 3주 마스터 플랜 1주차✅ 1주차 계획 (정렬 & 완전 탐색)📅 목표 기간: 수요일 ~ 일요일 (5일)🎯 목표: 정렬 & 완전 탐색 개념 정리 문제 풀이 전 접근법 작성 & 반례 테스트 5문제 풀이 & 블로그..
[백준] 수 정렬하기 (2750) - Java 자바 https://www.acmicpc.net/problem/2750 이전에 이미 풀었던 문제지만, https://sober-developer.tistory.com/90 알고리즘 3주 마스터 플랜 1주차✅ 1주차 계획 (정렬 & 완전 탐색)📅 목표 기간: 수요일 ~ 일요일 (5일)🎯 목표: 정렬 & 완전 탐색 개념 정리 문제 풀이 전 접근법 작성 & 반례 테스트 5문제 풀이 & 블로그 정리 (2문제 이상) 📌 1주sober-developer.tistory.com 차근차근 푸는 연습을 위해 다시 풀어보겠다. 수 정렬하기 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB2312481330539112958.261%문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.입력..
알고리즘 3개월 마스터 플랜 1주차 ✅ 1주차 계획 (정렬 & 완전 탐색)📅 목표 기간: 수요일 ~ 일요일 (5일)🎯 목표: 정렬 & 완전 탐색 개념 정리 문제 풀이 전 접근법 작성 & 반례 테스트 5문제 풀이 & 블로그 정리 (2문제 이상) 📌 1주차 학습 개념정렬 알고리즘 버블 정렬, 선택 정렬, 삽입 정렬 (기본)퀵 정렬, 병합 정렬 (고급)라이브러리 정렬 활용 (Arrays.sort, sorted) 정렬 응용 (좌표 정렬, 문자열 정렬, 커스텀 정렬) 완전 탐색 (Brute Force)모든 경우의 수 탐색 (순열, 조합)비효율적인 풀이 방식과 시간복잡도 고려 백트래킹을 사용하지 않는 기본적인 완전 탐색 문제 📌 추천 문제 (정렬 & 완전 탐색)문제 유형난이도문제 링크기본 정렬실버 4백준 2750 - 수 정렬하..
알고리즘 공부 시작하기 - 3개월 알고리즘 마스터 플랜 계기사실 계기도 많았고 시도도 많았다.알고리즘 공부는 항상 해왔지만 '돌아간다 신난다'의 안 좋은 습관이 있었고 슬프게도 내가 그걸 너무 재밌어해서 계속 고치고 싶지 않았다.하지만 이정도면 땡깡은 피울대로 피웠고, 난 훌륭한 개발자가 되어야 하니까 이젠 정신을 차릴 시기가 지나도 한참 지나버렸다.어르신께 이 상황을 말씀드리고 어떻게 하면 좋을지 조언을 구해봤다.어르신의 조언을 바탕으로 정리해보았다.목표지금까지는 감으로 풀었다면 이제는 이론을 확실히 익히고 전략적으로 접근하는 방식으로 바꾸는 것이 목표원칙1. 문제 풀이 방식 바꾸기✅ 1단계: 문제 읽기 전 먼저 개념 확인문제를 보고 바로 코드 작성 금지. 관련된 이론/유형을 먼저 떠올려 보기 (예: DFS/BFS 문제라면 탐색 방식과 시간 복잡도 고려)..
[알고리즘] 순열(Permutation) 계기 SSAFY 교육 정리 순열(Permutation) 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것 서로 다른 n개 중 r개를 택하는 순열은 아래와 같이 표현한다. 그리고 nPr은 다음과 같은 식이 성립한다 nPn = n!이라고 표기하며 Factorial이라 부른다. 다수의 알고리즘 문제들은 순서화된 요소들의 집합에서 최선의 방법을 찾는 것과 관련 있다. 예> TSP(Traveling Salesperson Problem, 외판원 순회) N개의 요소들에 대해서 n!개의 순열들이 존재한다. 12! = 479,001,600 n > 12 인 경우, 시간 복잡도 폭발적으로 ↑ 단순하게 순열을 생성하는 방법 예) {1, 2, 3}을 포함하는 모든 순열을 생성하는 함수 동일한 숫자가 포함되지 않았을 때,..
[알고리즘] 부분집합 & 조합 + 비트 연산자 개요 SSAFY 교육 정리 부분집합 (Powerset) 비트 연산자 연산자 연산자의 기능 & 비트 단위로 AND 연산 예) num1 & num2 | 비트 단위로 OR 연산을 한다. 예) num1 | num2 ^ 비트 단위로 XOR 연산을 한다. (같으면 0 다르면 1) 예) num1 ^ num2 ~ 단항 연산자로서 피연산자의 모든 비트를 반전시킨다. 예) ~num > 2 부분집합의 수 - 집합의 원소가 n개일 때, 공집합을 포함한 부분집합의 수는 2ⁿ개 - 이는 각 원소를 부분집합에 포함시키거나 포함시키지 않는 2가지 경우를 모든 원소에 적용한 경우의 수와 같다. - 예) 반복문을 이용하여 부분집합 구하기 - 의사코드 sel = {0, 0, 0, 0} for i in 0 to 1: sel[0] = i /..