Algorithm/programmers
programmers N개의 최소공배수
wow
2022. 4. 18. 18:30
https://programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
문제 분석
- 최소공배수를 구한다. (전 게시물 참고 https://woooow.tistory.com/178?category=994691)
- 배열로 들어온 숫자를 두 개씩 비교해서 최소공배수를 구하여 정답을 구한다.
문제 풀이
1. for문을 통해 배열에 들어온 숫자 두 개씩을 lcm메소드로 계산하여 최소공배수를 구한다.
2. 최대공약수(gcd 메소드)를 구한 후 이 값을 이용하여 최소공배수(lcm 메소드)를 구한다.
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(true){
if(b==0){
break;
}
int r=a%b;
a=b;
b=r;
}
return a;
}
}