[프로그래머스] Lv.2 N개의 최소공배수.java

hgghfgf·2023년 5월 15일
0

프로그래머스

목록 보기
70/227

N개의 최소공배수.java

class Solution {
    public int solution(int[] arr) {
        int answer = arr[0]; // 초기값을 배열의 첫 번째 숫자로 설정
        
        // 배열의 숫자들과 answer의 최소공배수를 구하는 반복문
        for (int i = 1; i < arr.length; i++) {
            answer = lcm(answer, arr[i]); // answer와 현재 숫자의 최소공배수를 구해서 answer에 업데이트
        }
        
        return answer;
    }
    
    // 두 수의 최대공약수를 구하는 메소드
    public int gcd(int a, int b) {
        if (b == 0)
            return a;
        else
            return gcd(b, a % b);
    }
    
    // 두 수의 최소공배수를 구하는 메소드
    public int lcm(int a, int b) {
        return (a * b) / gcd(a, b);
    }
}

solution 함수 내에서 gcd와 lcm 메소드를 활용하여 최소공배수를 구합니다. gcd는 유클리드 호제법을 사용하여 최대공약수를 구하는 메소드이고, lcm은 최대공약수를 활용하여 최소공배수를 계산하는 메소드입니다. solution 함수는 배열의 첫 번째 숫자를 초기값으로 설정하고, 배열의 나머지 숫자들과의 최소공배수를 반복적으로 계산하여 최종적인 최소공배수를 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글