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;
    }    
}

 

 

https://github.com/SOEUN2/Algorithm