![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uEpl7/btsG49uFrBF/04CUZbCJtN0KwEPIW4HKZK/img.jpg)
Algorithm 공부 #27 - 확장 유클리드 호제법 ✏️ 유클리드 호제법최대공약수 관련 문제들을 풀어봤다면 한번쯤은 접해 봤을 법한 알고리즘자연수 a와 b가 주어졌을 때 gcd(a,b) 즉 a와 b의 최대공약수를 구할 수 있음 a를 b로 나눈 몫을 q라고 하고, 나머지를 r이라 하면 a= bq + r로 나타냄이때 gcd(a,b) = gcd(b,r)을 만족 gcd(a,b)=g">gcd(a,b)=ggcd(a,b)=g라고 하면, g|a">g|ag|a, g|b">g|bg|b 를 만족하게 되고, r=a−bq">r=a−bqr=a−bq이므로 g|(a−bq)=r">g|(a−bq)=rg|(a−bq)=r 을 만족gcd(b,r)=g">gcd(b,r)=ggcd(b,r)=g라고 해도, g|b">g..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/loFZr/btsGJdrNa0k/14OpoKYvTJKR3kB4tUa4kk/img.jpg)
Algorithm 공부 #27 - KMP알고리즘 ✏️ 단순 문자열 비교 알고리즘 말 그대로 단순히 for문을 돌리면서 문자열을 하나하나씩 비교하는 알고리즘 하지만 이렇게 돌리게 되면 두 문자열의 길이를 n과 m이라고 했을 때 시간복잡도가 O(n*m)이고 n과 m이 1,000,000이상만 넘어가도 많은 시간이 걸리게 되는 단점이 있음 먼저 긴 문자열을 parent(BCDEF)라 하고 찾을 문자열을 DE라고 하면 가장 먼저 찾을 문자열을 parent맨 앞에 위치시키고 비교 => 맞지 않음 다시 인덱스를 한 칸 뒤로 옮겨서 비교 => 맞지 않음 다시 인덱스를 한 칸 뒤로 옮겨서 비교 => 정답 이런 식으로 비교를 하게 되면 짧은 문자열은 상관이 없지만 문자열이 길어질수록 시간이 오래 걸리게 됨 ✏️ KMP 알..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cccUQk/btsGBOx2cte/Kzz94hPykhLzH6K0huTc70/img.jpg)
Algorithm 공부 #26 - 이분 매칭 ✏️이분 매칭이란? 이분 그래프에서 주로 사용하는 알고리즘 이분 그래프는 두 개의 정점 그룹이 존재할 때 모든 간선의 용량이 1이면서 양쪽 정점이 서로 다른 그룹에 속하는 그래프 이러한 이분 그래프에서 예를 들어, 한 그룹은 X그룹, 다른 한 그룹은 Y그룹이고 간선의 방향은 X->Y라고 할 때 모든 경로의 방향은 X->Y인 그래프의 최대 유량을 구하는 것 ✏️예시 먼저 알파벳 그룹과 숫자 그룹이 있다고 가정을 하면 A에서 갈 수 있는 숫자는 1과 3 B에서 갈 수 있는 숫자는 1과 2 C에서 갈 수 있는 숫자는 5 D에서 갈 수 잇는 숫자는 3 E에서 갈 수 있는 숫자는 2 A부터 매칭을 시작하면 각 점에서는 한 개의 숫자만 갈 수 있으므로 A는 1과 연결(총..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c69jYA/btsGiprB2mq/DqgbsX7HhozAxRl8u7dVKK/img.png)
✏️ 문제 링크 https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net ✏️ 문제 설명 ✏️ 문제 풀이 기본적인 위상 정렬 문제이고 문제에서 주어진 "가능하면 쉬운 문제부터 풀어야 한다"의 조건을 주의해야 합니다. 문제의 숫자가 높아질수록 난이도가 올라가므로 우선순위 큐를 오름차순으로 정렬해서 큐를 돌려주면 됩니다. ✏️ 문제 코드 #include #include #include using namespace std; ve..
- Total
- Today
- Yesterday
- DP
- 알고리즘
- 알고리즘 공부
- HTML5
- js
- 백준
- Do it!
- 스프링 부트 crud 게시판 구현
- 유클리드 호제법
- 이분 매칭
- DFS
- java
- 백준 풀이
- 유니온 파인드
- 세그먼트 트리
- 카운팅 정렬
- C++
- 우선순위 큐
- 투 포인터
- 반복문
- 자바스크립트
- 에라토스테네스의 체
- html
- 스택
- CSS
- c++ string
- BFS
- 자바
- C++ Stack
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |