https://school.programmers.co.kr/learn/courses/30/lessons/12953
📌 최소 공배수 계산 공식
최대 공배수 == 두 수의 곱을 최대 공약수로 나눈 값이다.
int lcm(int x, int y) { return x * y / gcd(x, y); }
✅ 문제 풀이
#include <vector>
using namespace std;
int gcd(int x, int y) { return x % y == 0 ? y : gcd(y , x % y); }
int lcm(int x, int y) { return x * y / gcd(x, y); }
int solution(vector<int> arr)
{
int answer = arr[0];
for(int i = 1; i < arr.size(); ++i)
{
answer = lcm(answer, arr[i]);
}
return answer;
}
x, y 두 수의 모듈러 값은 작은 숫자의 최대 공약수와 같다는 성질을 이용해 최대 공약수를 구하는 함수 gcd 정의하였다.
최대 공약수가 구해진다면 최소 공배수는 간단히 x, y 두 수를 곱한 값에 나눠주면 구할 수 있게 된다.
유클리드 알고리즘
유클리드 알고리즘두 정수의 최대공약수(GCD, Greatest Common Divisor)를 구하는 효율적인 방법이다. 기본 원리는 두 수의 최대공약수는, 두 수의 모듈러 값과 작은 숫자의 최대 공약수와 같다는 성질
dong-grae.tistory.com
'공부 > Code Cata' 카테고리의 다른 글
괄호 회전하기 / stack 사용 (1) | 2025.02.06 |
---|---|
멀리 뛰기 / 피보나치 수열 활용 (1) | 2025.02.05 |
JadenCase 문자열 만들기 (0) | 2025.01.27 |
최대값과 최솟값 (0) | 2025.01.27 |
개인정보 수집 유효기간 (1) | 2025.01.22 |