[Algorithm] 최대공약수와 최소공배수

2024. 12. 23. 22:12·Algorithm/Practice

문제 설명

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요.

배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다.

예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

 

문제 유형

  • 최대 공약수
  • 최소 공배수

 

문제 아이디어

  • 최대 공약수는 유클리드 호제법으로 풀 수 있다.
  • 유클리드 호제법
    • 최대공약수 (GCD)
      • "a를 b로 나눈 나머지가 r일 떄, a와 b의 최대 공약수는 b와 r의 최대공약수와 같다."
      • 두 수 (48, 18)
        • 48 % 18 = 12,
        • 18 % 12 = 6,
        • 12 % 6 = 0, 최대공약수는 6이다.
    • 최소공배수 (LCD)
      • 두 수를 최대공약수로 나눈 값과 같다.
      • 두 수 (48, 18)
        • 48 * 18 / 6

 

코드 작성

#include <vector>

using namespace std;

int gcd(int a, int b)
{
    while (b != 0)
    {
        int temp = b;
        b = a % b;
        a = temp;
    }
    
    return a;
}

int lcd(int a, int b)
{
    return a * b / gcd(a, b);
}

vector<int> solution(int n, int m) {
    vector<int> result;
    result.push_back(gcd(n,m));
    result.push_back(lcd(n,m));
    
    return result;
}

 

참고

최소공배수와 최대공약수 알고리즘 (유클리드 호제법)

'Algorithm > Practice' 카테고리의 다른 글

[Algorithm] 삼총사  (2) 2024.12.26
[Algorithm] 이상한 문자 만들기  (1) 2024.12.26
[Algorithm] 직사각형 별찍기  (1) 2024.12.22
[Algorithm] 행렬의 덧셈  (0) 2024.12.20
[Algorithm] 부족한 금액 계산하기  (0) 2024.12.18
'Algorithm/Practice' 카테고리의 다른 글
  • [Algorithm] 삼총사
  • [Algorithm] 이상한 문자 만들기
  • [Algorithm] 직사각형 별찍기
  • [Algorithm] 행렬의 덧셈
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    레벨디자인
    Implement
    unrealengine
    Design Pattern
    Til
    KPT회고
    unreal
    component
    Algorithm
    디자인패턴
    퀘스트
    assetmanager
    Animation
    basic
    디자인 패턴
    하드 레퍼런싱
    액터
    GameplayEffect
    tsoftobjectptr
    게임동기화
    내일배움캠프
    사전캠프
    소프트 레퍼런신
    actor
    DesignPattern
    본캠프
    gas
    알고리즘
    AI
    c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[Algorithm] 최대공약수와 최소공배수
상단으로

티스토리툴바