문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12953
레벨 : Level 2
분류 : 연습문제
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
이 문제는 최대 공약수와 최소 공배수를 구하는 로직이 필요하다.
주어진 배열의 개수만큼 앞에서 부터 차례대로 최소 공배수를 구해나가면 된다.
아래와 같이 소스를 공유합니다.
class Solution {
public int solution(int[] arr) {
int answer = arr[0];
for(int i = 1; i < arr.length; i++) {
answer = answer * arr[i] / gcd(answer, arr[i]);
}
return answer;
}
public int gcd(int a, int b) {
if(b == 0) return a;
return gcd(b, a % b);
}
}
'알고리즘 > 문제풀이 - 프로그래머스' 카테고리의 다른 글
[프로그래머스] 124 나라의 숫자 Java (0) | 2021.09.29 |
---|---|
[프로그래머스] 최솟값 만들기 Java (0) | 2021.09.28 |
[프로그래머스] 피보나치 수 Java (0) | 2021.09.28 |
[프로그래머스] 행렬의 곱셈 Java (0) | 2021.09.28 |
[프로그래머스] JadenCase 문자열 만들기 Java (0) | 2021.09.28 |