N개의 최소 공배수

2025. 2. 4. 10:44·공부/Code Cata

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
'공부/Code Cata' 카테고리의 다른 글
  • 괄호 회전하기 / stack 사용
  • 멀리 뛰기 / 피보나치 수열 활용
  • JadenCase 문자열 만들기
  • 최대값과 최솟값
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    N개의 최소 공배수
    상단으로

    티스토리툴바