코테/lvl2

프로그래머스 N개의 최소공배수(lvl2) 풀어보기

디비드킴 2026. 9. 26. 15:14

문제링크

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

 

프로그래머스

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

programmers.co.kr

 


문제 핵심

  • 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.

알고리즘

-배열 정렬

가장 큰수 찾기

가장큰수 +1 해가면서

배열에 모두 나눠지는 수찾기


코드

public static int solution(int[] arr) {
        int answer = 0;
        Arrays.sort(arr);
        int max = arr[arr.length - 1];
        System.out.println("max:" +max);
        while (true) {
            max+=1;
            boolean flag=true;
            for(int i:arr){
                if(max%i!=0){
                    flag=false;
                    break;
                }
            }
            if(flag){
                break;
            }
        }
        answer=max;
        System.out.println(answer);
        return answer;
    }

 


결과




gpt피드백

-현재 방식은 최소공배수가 나올 때까지 1씩 증가시키고 있어.

예를 들어 [2, 6, 8, 14]에서 max = 14라면 굳이

15, 16, 17, 18, 19 ...

를 검사할 필요 없이

14, 28, 42, 56, 70 ...

만 검사하면 돼.


 
 
 

배운점과느낀점

-와 시간초과 날줄 알았는데 통과했다

gpt 말대로 가장 큰수의 배수만 보는게 더 좋은 아이디어다