Algorithm 공부 #12 - 정수론(유클리드 호제법과 확장 유클리드 호제법) 유클리드 호제법(최대 공약수 구하기) ● 큰 수를 작은 수로 나누는 MOD연산 ● 앞 단계에서 나왔던 작은 수와 나머지를 다시 MOD연산 ● 이렇게 반복하면서 나머지가 0이 되면 그 순간의 작은 수를 최대 공약수로 선택 ex) 270과 192 270 mod 192 = 78 192 mod 78 = 36 78 mod 36 = 6 36 mod 6 = 0 => 0이 되는 순간 6을 return, 즉 270과 192의 최대공약수는 6 백준 1934번 최소공배수 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수..
Algorithm 공부 #10 - 그리디 알고리즘 그리디 알고리즘(Greedy Algorithm) ● 현재 상태에서 볼 수 있는 선택지 중에 최선의 선택을 하는 알고리즘 ● 동적 계획법보다 구현하기 쉽고 시간복잡도가 우수함 ● 하지만 항상 최선의 해를 보장하지 못하기 때문에 전제 조건을 잘 살펴보아야 함 백준 11047번 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net ※..
Algorithm 공부 #09 - 탐색(이진 탐색) 이진 탐색(Binary Search) ● 데이터가 정렬된 상태에서 원하는 값을 찾아내는 알고리즘 ● 구현 및 원리가 비교적 간단하고 시간 복잡도는 O(logn) ● 탐색 방법 1. 현재 데이터셋에서 중앙값 찾기 2. target이 중앙값보다 작다면 end=middle-1 3. target이 중앙값보다 크다면 start=middle+1 4. target==중앙값일 때 데이터 탐색을 종료 백준 1920번 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤..
Algorithm 공부 #06 - 정렬(삽입 정렬과 퀵 정렬) 삽입 정렬(Insertion Sort) ● 이미 정렬된 데이터 범위에 정렬되지 않은 데이터를 적절한 위치에 삽입하며 정렬하는 방식 ● 시간 복잡도는 O(n^2)으로 느린 편이지만 구현 난이도는 쉬움 ● 적절한 삽입 위치를 탐색하는 부분에서 이진 탐색 등과 같은 탐색 알고리즘을 사용하여 시간 복잡도 줄일 수 있음 ● 삽입 정렬 과정 1. 현재 index에 있는 데이터 값을 선택 2. 현재 선택한 데이터가 정렬된 데이터 범위에 삽입될 위치를 탐색 3. 삽입 위치부터 index가 있는 위치까지 shift 연산을 수행 4. 삽입 위치에 현재 선택한 데이터를 삽입하고 indexx++ 연산을 수행 5. 현재 데이터의 크기만큼 index가 커질 때까지, ..
- Total
- Today
- Yesterday
- Do it!
- CSS
- DFS
- C++
- 자료구조
- js
- 반복문
- 자바
- 스택
- 유클리드 호제법
- 스프링 부트 crud 게시판 구현
- 에라토스테네스의 체
- 알고리즘
- c++ string
- 백준
- 세그먼트 트리
- BFS
- HTML5
- 백준 풀이
- 알고리즘 공부
- DP
- java
- 이분 매칭
- 우선순위 큐
- C++ Stack
- 자바스크립트
- 투 포인터
- 유니온 파인드
- 카운팅 정렬
- html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |