📝 문제

https://programmers.co.kr/learn/courses/30/lessons/12953?language=java

🎯 풀이

  1. 배열의 숫자 중 가장 큰 숫자를 기준 값으로 선정한다.
  2. 기준 값을 배열의 숫자들로 나눈다.
    • 나머지가 0이 아닌 숫자가 하나라도 있을 경우, 기준 값을 +1 시키고 반복.
    • 모든 숫자로 나눈 나머지가 0일 경우, 최소공배수를 찾아낸 것.
import java.util.Arrays;

class Solution {
    public Boolean isLoopContinue(int[] arr, int lcm){
        for(int num : arr){
            if(lcm % num != 0){
                return true;
            }
        }
        return false;
    }
    
    public int solution(int[] arr) {
        // 배열 오름차순 정렬하고, 가장 큰 수를 시작값으로 지정
        Arrays.sort(arr);
        int lcm = arr[arr.length-1];
        
        while(true){
            if(isLoopContinue(arr, lcm)){ // 하나라도 나머지가 0이 아니면,
                lcm = lcm + 1;
            } else {                      // 모든 숫자의 나머지가 0이면 끝.
                break;
            }
        }
        
        return lcm;
    }
}

댓글남기기