https://programmers.co.kr/learn/courses/30/lessons/12953
첫번째 값과 두번째 값의 최소공배수를 구하고
해당 최소공배수와 세번째 값의 초소공배수를 구하는 방법으로
마지막 값까지 구하면 되는 문제
최대 공배수를 유클리드 호제법을 통해서 구하고 이를 통해서 최소 공배수를 구하면 해결된다.
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 |