Rylah's Study & Daily Life
Programmers Lv 2. N개의 최소공배수 본문
https://programmers.co.kr/learn/courses/30/lessons/12953
- N개의 최소공배수
문제 설명
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
제한 사항- arr은 길이 1이상, 15이하인 배열입니다.
- arr의 원소는 100 이하인 자연수입니다.
[2,6,8,14] | 168 |
[1,2,3] | 6 |
#include <string>
#include <vector>
using namespace std;
int gcd_recur(int a, int b) { // 재귀로 구현한 최대 공약수
if (b == 0) {
return a;
}
else {
return gcd_recur(b, a % b); // 재귀
}
}
int lcm(int a, int b) { // 최소 공배수
return ((a * b) / gcd_recur(a, b)); // 최소공배수는 최대공약수랑 나눠줘야 된다.
}
int solution(vector<int> arr) {
int answer = 0;
int gcd_ans = 0;
answer = arr[0];
for (int i = 1; i < arr.size(); i++) {
answer = lcm(answer, arr[i]);
}
return answer;
}
정확성 테스트
테스트 1 〉 | 통과 (0.01ms, 4.33MB) |
테스트 2 〉 | 통과 (0.01ms, 3.67MB) |
테스트 3 〉 | 통과 (0.01ms, 4.33MB) |
테스트 4 〉 | 통과 (0.01ms, 4.33MB) |
테스트 5 〉 | 통과 (0.01ms, 4.32MB) |
테스트 6 〉 | 통과 (0.01ms, 4.32MB) |
테스트 7 〉 | 통과 (0.01ms, 3.75MB) |
테스트 8 〉 | 통과 (0.01ms, 4.32MB) |
테스트 9 〉 | 통과 (0.01ms, 4.26MB) |
테스트 10 〉 | 통과 (0.01ms, 4.28MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'Programmers > Level 2' 카테고리의 다른 글
[Programmers Level 2] DATETIME에서 DATE로 형 변환 (0) | 2022.01.10 |
---|