📝 문제
https://programmers.co.kr/learn/courses/30/lessons/12953?language=java
🎯 풀이
- 배열의 숫자 중 가장 큰 숫자를 기준 값으로 선정한다.
- 기준 값을 배열의 숫자들로 나눈다.
- 나머지가 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;
}
}
댓글남기기