728x90
https://tigerfrom2.tistory.com/70
이 글을 참고!
어차피 몇개가 들어오던
(1,2,3,4) 라고 하면 1, 2의 최소공배수 a, a와 3의 최소공배수 b, b와 4 의 최소 공배수 c 라고 순차적으로 구해나가면 그게 정답이다. 수학적 증명은 하지않았지만 뭐 맞았다.
#include <string>
#include <vector>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
else return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int solution(vector<int> arr) {
int answer = 0;
if(arr.size() == 1)
return arr[0];
else{
int tmp = lcm(arr[0], arr[1]);
for(int i = 2; i < arr.size(); i++){
tmp = lcm(tmp, arr[i]);
}
answer = tmp;
}
return answer;
}
'프로그래머스 풀이 > Lv 2' 카테고리의 다른 글
프로그래머스 - [1차]캐시 (0) | 2023.03.26 |
---|---|
프로그래머스 - 카카오 프렌즈 컬러링북(C++) (0) | 2023.02.26 |
프로그래머스 - 삼각 달팽이(c++) (0) | 2023.02.21 |
프로그래머스 - 마법의 엘리베이터(C++) (0) | 2023.02.20 |
프로그래머스 - 짝지어 제거하기(C++) (0) | 2022.12.27 |