일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 안드로이드
- 동적 계획법
- 리트코드
- 자바
- 백준
- LeetCode
- frontend
- Data Structure
- java
- vscode
- Javascript
- BFS
- Algorithm
- DFS
- db
- DP
- react
- git
- Python
- Graph
- CS
- 다이나믹 프로그래밍
- 알고리즘
- Redux
- VIM
- network
- 그레이들
- TypeScript
- 프로그래머스
- Database
Archives
- Today
- Total
늘 겸손하게
Algorithm - 유클리드 호제법 본문
유클리드 호제법 ( Euclidean algorithm )
두 정수 A, B의 최대공약수를 구하는 알고리즘입니다.
원리
두 정수 a, b가 주어졌을때, a를 b로 나눈 나머지를 r이라고 하자.
a, b의 최대공약수를 (a, b)라고 하면, 다음이 성립한다.
(a, b) = (b, r)
ex)
(1071, 1029) = (1029, 42) = (42, 21) = (21, 0) = 21
코드
public int gcd(int p, int q) {
if (q == 0) return p;
return gcd(q, p % q);
}
팁 : 큰 숫자를 첫 번째 인자로 주어야 불필요한 재귀 1번을 아낄 수 있다.
'Algorithm' 카테고리의 다른 글
Java 진법 변환 (10진수 -> N진수, N진수 -> 10진수) (0) | 2023.07.26 |
---|---|
Algorithm - 버블 정렬 (0) | 2023.07.21 |
Algorithm - 플로이드 워셜 알고리즘 (0) | 2023.07.16 |
Algorithm - 소수 판단 (0) | 2023.07.15 |
Algorithm - 순열, 조합, 중복순열, 중복조합 (Java) (0) | 2023.07.11 |