반응형
최대공약수 / 최소공배수 문제를 풀때 매우 유용할 것 같아서 블로그에 작성해둔다. 해당 알고리즘 문제만 나온다면 어디서든 쉽게 활용가능하니 꼭 알아두자.
유클리드 호제법
유클리드 호제법이란, 정수 A, B 그리고 이들의 나머지값 R이 있다고 할때,(A % B = R)
A, B의 최대공약수가 B, R의 최대공약수와 같다는 원리이다.
이때, A와 B의 대소비교는 중요하지 않음.
10 % 15 = 10
15 % 10 = 5
10 % 5 = 0
-> 최대공약수: 5
이렇게 쉽게 최대공약수를 산출가능하다. 코드형식은 아래와 같다.
int gcd(int a, int b) {
int temp;
while(b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
최소공배수 구하기
그렇다면 최소공배수는?
-> 위에서 산출했던 최대공약수를 이용하면 된다.
두 자연수의 곱 / 최대공약수 ((A * B) / 최대공약수)
아래 문제들을 반복하면서 활용능력을 기르길 바란다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'알고리즘' 카테고리의 다른 글
[알고리즘 코딩테스트] 나만의 SQL 문법정리 (0) | 2025.03.17 |
---|---|
프로그래머스 숫자 카드 나누기 (c++) (0) | 2024.08.16 |
백준 11568번 민균이의 계략 (0) | 2024.08.07 |
백준 9519번 졸려(c++) (0) | 2024.08.06 |
백준 2096번 내려가기(c++) (1) | 2024.05.23 |