https://programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - 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 = lcm(answer, arr[i]);
}
return answer;
}
static int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
static int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 숫자 게임 문제 (자바) (0) | 2021.06.14 |
---|---|
프로그래머스 셔틀버스 문제 (자바) (0) | 2021.06.07 |
프로그래머스 - 압축 문제 (자바) (0) | 2021.06.04 |
프로그래머스 - 스킬트리 문제 (자바) (0) | 2021.06.04 |
프로그래머스 - 프렌즈4블록 문제 (자바) (0) | 2021.06.04 |