하루에 한 문제

[프로그래머스-lv2]N개의 최소공배수 -Java 본문

알고리즘/프로그래머스 lv2 다시풀기

[프로그래머스-lv2]N개의 최소공배수 -Java

dkwjdi 2021. 3. 24. 23:07

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 num1=arr[0];
        
        for(int i=1; i<arr.length; i++){
            int num2=arr[i];
            
            int max=Math.max(num1,num2);
            int min=Math.min(num1,num2);
            
            num1=max*min/gcd(max,min); 
        }
        return num1;
    }
    
    private int gcd(int max, int min){
        while(min!=0){
            int remain=max%min;
            max=min;
            min=remain;
        }
        return max;
    }
}

소요시간 : 30분

 

IDE를 사용하지 않고 바로 작성할려니까 실수가 많네요..

 

gcd, lcm개념을 까먹어서 다시 복기한다고 조금 시간이 걸렸습니다..

 

gcd, lcm을 사용한다면 금방풀리는 문제입니다!!

 

gcd, lcm에 대한 설명은 여기!

dkwjdi.tistory.com/121

 

유클리드 호제법(최소공약수, 최대공배수 구하기)

최소공약수 60과 24의 최소공약수를 구해보겠습니다. gcd(60,24) -> gcd(24,12) -> 12 1. gcd(60,24)  나머지 R : 60%24 = 12  B: 24  R: 12 2. gcd(B,R) -> gcd(24,12)  나머지 R : 24%12 = 0 ->-> 12  코..

dkwjdi.tistory.com

 

 

끝~~

Comments