int solution(vector<int> arr) {
int answer = 0;
int max = 0;
for(int i =0; i < arr.size(); ++i)
{
if(arr[i] > max)
{
max = arr[i];
}
}
int n = 2;
bool b = true;
while(1)
{
answer = max * n++;
for(int i = 0; i < arr.size(); ++i)
{
if(answer % arr[i] != 0)
{
b = false;
break;
}else
b = true;
}
if(b) return answer;
}
}
유클리드 호제법으로 풀면
int euclid(int a, int b)
{
return b ? euclid(b, a % b) : a;
}
int lcm(int a, int b)
{
return (a * b) / (euclid(a, b));
}
int solution(vector<int> arr) {
int answer = arr[0];
for(int i = 1; i < arr.size(); i++)
{
answer = lcm(answer, arr[i]);
}
return answer;
}