문제링크
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 말대로 가장 큰수의 배수만 보는게 더 좋은 아이디어다
'코테 > lvl2' 카테고리의 다른 글
| 프로그래머스 땅따먹기(lv2) 풀어보기 (0) | 2026.09.28 |
|---|---|
| 프로그래머스 멀리 뛰기(lvl2) 풀어보기 (0) | 2026.09.26 |
| 프로그래머스 마법의 엘리베이터(lvl2) 풀어보기 (0) | 2026.09.26 |
| 프로그래머스 호텔 대실(lvl2) 풀어보기 (0) | 2026.09.17 |
| 프로그래머스 리코쳇 로봇(lvl2) 풀어보기 (0) | 2026.09.17 |