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

이은정·2024년 9월 22일

프로그래머스/Java

목록 보기
40/74

문제

로직

배열의 가장 큰 수의 배수 중, 배열의 가장 큰 수를 제외한 나머지 값들을 각각 나누었을 때의 나머지가 모두 0인 배수 중에서 가장 작은 수가 답이다.
그래서 배열의 가장 큰 수부터 차례대로 배열의 가장 큰 수를 제외한 나머지 값들을 각각 나눈다. 모든 나머지가 0일 때, 해당 값을 Return 한다.
하나라도 나머지가 0이 아닐 경우에는 배열의 가장 큰 수의 다음 배수를 똑같이 반복한다.

코드

import java.util.*;

class Solution {
    public int solution(int[] arr) {
        // 최댓값 찾기
        Arrays.sort(arr);
        int max = arr[arr.length-1];
        
        int mul = 1;
        while(true) {
            int num = max*mul;
            
            boolean isMul = true;
            for (int i = 0; i < arr.length-1; i ++) {
                if (num % arr[i] != 0) {
                    isMul = false;
                    break;
                }
            }
            
            if (isMul) {
                return num;
            }
            
            mul += 1;
        }
    }
}

결과

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글