
Algorithm 공부 - 탐색(깊이 우선 탐색과 너비 우선 탐색) 깊이 우선 탐색(Depth-First-Search) ● 그래프 완전 탐색 기법 ● 그래프의 시작 노드에서 출발하여 탐색할 한쪽 분기를 정한 후 최대 깊이까지 탐색을 마친 후 다른 분기로 이동 ● 노드의 개수를 V, 엣지의 개수를 E라 하면 시간 복잡도는 O(V+E) ● 단절점 찾기, 단절선 찾기, 위상 정렬, 사이클 찾기 등의 문제에 활용됨 ● 탐색 방법 1. 인접 리스트로 그래프 표현하기 + 방문 여부를 체크할 배열 만들기 + 스택에 시작 노드 삽입하기 2. 스택에서 노드를 POP한 후 그 노드와 인접 노드 삽입하기, 없다면 다음 노드로 이동 3. 스택 자료구조에 값이 없을 때까지 계속해서 반복 백준 2751번 수 정렬하기2 https..

Algorithm 공부 #07 - 정렬(병합 정렬과 기수 정렬) 병합 정렬(Merge Sort) ● 분할 정복 방식을 사용해 데이터를 분할하고 분할한 집합을 정렬하며 합치는 알고리즘 ● 시간 복잡도는 O(nlogn) 백준 2751번 수 정렬하기2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net ※ N의 최대 범위가 1,000,0000이므로 O(nlogn)의 병합 정렬을 사용해서 문제 풀기 ※ ● 병합 정렬 함수 슈도 코드 병합 정렬(..

Algorithm 공부 #06 - 정렬(삽입 정렬과 퀵 정렬) 삽입 정렬(Insertion Sort) ● 이미 정렬된 데이터 범위에 정렬되지 않은 데이터를 적절한 위치에 삽입하며 정렬하는 방식 ● 시간 복잡도는 O(n^2)으로 느린 편이지만 구현 난이도는 쉬움 ● 적절한 삽입 위치를 탐색하는 부분에서 이진 탐색 등과 같은 탐색 알고리즘을 사용하여 시간 복잡도 줄일 수 있음 ● 삽입 정렬 과정 1. 현재 index에 있는 데이터 값을 선택 2. 현재 선택한 데이터가 정렬된 데이터 범위에 삽입될 위치를 탐색 3. 삽입 위치부터 index가 있는 위치까지 shift 연산을 수행 4. 삽입 위치에 현재 선택한 데이터를 삽입하고 indexx++ 연산을 수행 5. 현재 데이터의 크기만큼 index가 커질 때까지, ..

Algorithm 공부 #05 - 정렬(버블 정렬과 선택 정렬) 정렬 데이터를 정해진 기준에 따라 배치에 의미 있는 구조로 재설정하는 것 ● 버블 정렬 (Bubble Sort) : 데이터의 인접 요소끼리 비교하고 swap연산을 수행하며 정렬 ● 선택 정렬 (Selection Sort) : 대상에서 가장 크거나 가장 작은 데이터를 찾아가 선택을 반복하면서 정렬 ● 삽입 정렬 (Insertion Sort) : 대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하며 정렬 ● 퀵 정렬 (Quick Sort) : pivot값을 선정해 해당 값을 기준으로 정렬 ● 병합 정렬 (Merge Sort) : 이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬 ● 기수 정렬 (Radix Sort) :..
- Total
- Today
- Yesterday
- DP
- 유니온 파인드
- 자료구조
- 반복문
- Do it!
- HTML5
- CSS
- 백준
- 카운팅 정렬
- DFS
- js
- 투 포인터
- 자바스크립트
- 세그먼트 트리
- BFS
- html
- 백준 풀이
- 자바
- 알고리즘
- 스택
- 이분 매칭
- 스프링 부트 crud 게시판 구현
- c++ string
- 유클리드 호제법
- 알고리즘 공부
- java
- C++ Stack
- C++
- 우선순위 큐
- 에라토스테네스의 체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |