링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12953
• 유클리드 호제법
int getGCD(int a, int b){
int big = max(a,b);
int small = min(a,b);
while(big % small != 0){
int r = big % small;
big = small;
small = r;
}
return small;
}
• 두 수의 최소 공배수 = 두 수의 곱 / 두 수의 최대 공약수
#include <string>
#include <vector>
using namespace std;
int getGCD(int a, int b){
int big = max(a,b);
int small = min(a,b);
while(big % small != 0){
int r = big % small;
big = small;
small = r;
}
return small;
}
int solution(vector<int> arr) {
int answer = arr[0];
for(int i = 1; i < arr.size(); i++){
int GCD = getGCD(answer, arr[i]);
int LCM = answer * arr[i] / GCD;
answer = LCM;
}
return answer;
}