일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Notice
Recent Posts
Recent Comments
Link
Tags
- string과 stringbuilder 성능 차이
- string과 stringbuilder
- 스프링 부트 프로젝트 세팅
- stringbuilder란
- 스프링부트 의존성 설정
- 경우의 수 자바
- 자바 합성수 찾기
- string과 stringbuilder의 차이
- 숨어있는 숫자의 덧셈 (1) 자바
- 배열 순환 문제 공식
- 스프링 부트 배너 설정
- 오블완
- spring boot 배너 설정
- string과 stringbuilder의 차이점
- 자바 소인수분해
- 프로그래머스 공 던지기 게임
- 프로그래머스 문자열 정렬하기(1)
- 소인수분해 구하는 공식
- string과 stringbuilder 성능 최적화
- 배열 순환
- 배열 순환 자바
- 모스부호(1) 자바
- 자바 팩토리얼
- 펙토리얼
- 외계행성의 나이 자바
- 개미 군단 자바
- 프로그래머스
- 왓챠피디아 클론 코딩
- 티스토리챌린지
- 접속 url 출력
Archives
- Today
- Total
여름 언덕에서 배운 것
유클리드 호제법이란? 본문
코테에서 흔히 쓰이는 알고리즘 방법인가보다! 수학적인 증명이겠거니..외우려고 한다..
유클리드 호제법은 두 수의 최대 공약수를 구하는 효율적인 방법
private int gcd(int a, int b) {
if (b == 0) return a; // b가 0이면 a가 최대공약수
return gcd(b, a % b); // 재귀 호출로 계속 나머지를 계산
}
1. 유클리드 호제법의 원리
두 개의 자연수 a, b(a > b)에 대해,
- GCD(a, b) == GCD(b, a % b)가 성립
- 즉, a를 b로 나눈 나머지를 새로운 b로 삼고, 원래의 b를 새로운 a로 두고 다시 GCD를 구하는 과정을 반복하면 결국 최대공약수가 나오는 원리다!
이 과정을 b가 0이 될 때까지 반복하면 a가 최대공약수가 된다 !!
2. 예제: GCD(48, 18) 구하기
- 48 % 18 = 12
→ GCD(48, 18) == GCD(18, 12) - 18 % 12 = 6
→ GCD(18, 12) == GCD(12, 6) - 12 % 6 = 0
→ GCD(12, 6) == GCD(6, 0) - b가 0이므로 GCD는 6
** 최소공배수는 두 수의 곱을 최대공약수로 나눈 것 !
728x90
'가랑비에 옷 젖는 줄 모른다 💻 > 🌰코테문풀_꾸준히' 카테고리의 다른 글
[0단계/1점]피자 나눠먹기(3) (0) | 2025.02.28 |
---|---|
[0단계/1점] 피자 나눠먹기(2) (0) | 2025.02.26 |
[0단계/4점] 최빈값 구하기 (1) | 2025.02.25 |
[0단계/1점] 중앙값 구하기 (0) | 2025.02.25 |
[0단계] 분수의 덧셈 (0) | 2025.02.25 |