#include <string>
#include <vector>
#include <algorithm>
#include<iostream>
using namespace std;
int get_gcd(int u, int v){
int t;
while(u!=0){
if(v>u){
t=u;
u=v;
v=t;
}
u=u%v;
}
return v;
}
int get_lcm(int u, int v){
int gcd = get_gcd(u,v);
return (u*v)/gcd;
}
int solution(vector<int> arr) {
int answer = 0;
sort(arr.begin(),arr.end());
int lcm_num=arr[0];
for(int i=1; i<arr.size(); i++){
lcm_num=get_lcm(lcm_num,arr[i]);
}
return answer=lcm_num;
}
최소공배수는 a*b/gcd 이다.
'C++ 알고리즘 > 1. 알고리즘 개요' 카테고리의 다른 글
1.4 소수 알고리즘 (0) | 2019.09.01 |
---|---|
1.3 유클리드 알고리즘(최소공약수 찾기) (0) | 2019.09.01 |
댓글