본문 바로가기

프로그래머스(Java)/Level 2

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

728x90

코드 힌트

  1. 최대공약수(GCD) 계산:
    gcd 메소드는 두 숫자 n과 m의 최대공약수를 계산합니다.
    유클리드 호제법을 사용하여 효율적으로 계산합니다.
    이 방법은 n % m의 나머지가 0이 될 때까지 반복하여 두 숫자의 최대공약수를 찾습니다.
  2. 최소공배수(LCM) 계산:
    lcm 메소드는 두 숫자 n과 m의 최소공배수를 계산합니다.
    최소공배수는 두 숫자의 곱을 그들의 최대공약수로 나누어 계산됩니다.
    n * m / 최대공약수(gcd)
  3. 배열의 최소공배수 계산:
    배열의 모든 요소에 대해 최소공배수를 차례로 계산합니다.
    초기값으로 배열의 첫 번째 요소를 설정하고,
    나머지 요소들과의 최소공배수를 순차적으로 계산합니다.

 


정답은 더보기 클릭

더보기
더보기
더보기
더보기
class Solution {
    public int solution(int[] arr) {
        // 배열의 첫 번째 요소를 초기 결과값으로 설정
        int result = arr[0];
        
        // 배열의 두 번째 요소부터 끝까지 순차적으로 최소공배수를 계산
        for (int i = 1; i < arr.length; i++) {
            result = lcm(result, arr[i]);
        }
        
        // 최종 계산된 최소공배수를 반환
        return result;
    }
 
    public int gcd(int n, int m) {
        // 유클리드 호제법을 사용하여 최대공약수를 계산
        while (m != 0) {
            int temp = m;
            m = n % m;
            n = temp;
        }
        return n;
    }

    public int lcm(int n, int m) {
        // 두 숫자의 곱을 최대공약수로 나누어 최소공배수를 계산
        return n * m / gcd(n, m);
    }
}
728x90