-
[프로그래머스] [JAVA] [Level 2] [연습문제] N개의 최소공배수PROGRAMMERS/연습문제 2022. 9. 20. 01:12
import java.util.*; class Solution { // 유클리드 호제법(최대 공약수 구하기) public static int gcd(int a, int b){ int maxNum = Math.max(a, b); int minNum = Math.min(a, b); while(minNum!=0){ int r = maxNum % minNum; maxNum = minNum; minNum = r; } return maxNum; } public int solution(int[] arr) { int answer = arr[0]; for(int i = 1;i<arr.length;i++){ // 최대공약수 (arr[0], arr[i]) 구하기(두 수의 최소공배수를 구하기 위해서) int gcd = gcd(answer,arr[i]); // 최소공배수 구하기 (최소공배수 = 첫번째 수 * 두번째 수 / 최대공약수) answer = answer * arr[i] / gcd; } return answer; } }
- 배열의 앞에서부터 두 수의 최대공약수를 구하고 그 수를 이용하여 최소공배수를 구하면 그 구해진 최소공배수를 이용하여 계속해서 구해나가면 된다.
'PROGRAMMERS > 연습문제' 카테고리의 다른 글
[프로그래머스] [JAVA] [Level 1] [코딩테스트 입문] 옹알이 (1) (0) 2023.01.24 [프로그래머스] [JAVA] [Level 2] [연습문제] 멀리 뛰기 (0) 2022.09.21 [프로그래머스] [JAVA] [Level 2] [연습문제] 다음 큰 숫자 (0) 2022.09.15 [프로그래머스] [JAVA] [Level 2] [연습문제] 피보나치 수 (0) 2022.09.15 [프로그래머스] [JAVA] [Level 2] [연습문제] 숫자의 표현 (0) 2022.09.14