본문 바로가기
알고리즘/프로그래머스

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

by hxxyeoniii 2024. 10. 31.

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12953

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제 풀이

유클리드 호제법을 사용해 최대공약수를 구한다.

두 수를 곱하고 이를 최대공약수로 나누면 최소공배수가 나오는 원리를 사용해 풀이하였다.

class Solution {
   public int solution(int[] arr) {
		int answer = 1;
		
		for(int i=0; i<arr.length; i++) {
			int a = arr[i];
			answer = a * answer / gcd(a, answer);
			System.out.println(answer);
		}
		return answer;
	}

	private int gcd(int a, int b) {
		if(b == 0) {
			return a;
		} else {
			return gcd(b, a % b);
		}
	}
}