아이디어
최소공배수를 구하면 된다.
주어진 값들중 제일 큰 값이상일 것이며
최소공배수에 주어진 값들을 나눴을때 모두 나머지가 0이어야한다
알고있었는데 딱히 써본적없는 arr.every를 썼다 (some도 있음)
코드
function solution(arr) {
let answer = 0;
let i = Math.max(...arr);
while (true) {
if (arr.every((ele) => i % ele === 0)) {
answer = i;
break;
}
i++;
}
return answer;
}
다른 사람의 좋은 코드
function nlcm(arr) {
return arr.reduce((a, b) => (a * b) / gcd(a, b));
}
function gcd(a, b) {
return a % b ? gcd(b, a % b) : b;
}
응축해가면서 품
temp = 첫 두 요소의 곱 / 첫 두 요소의 최대공약수
temp = temp * 3번째 요소 / gcd(temp,3번째 요소)
...
이런식으로 품
'코딩 테스트 > 프로그래머스 level2' 카테고리의 다른 글
올바른 괄호 (0) | 2022.09.08 |
---|---|
최솟값 만들기 (0) | 2022.09.08 |
이진 변환 반복하기 (0) | 2022.09.08 |
JadenCase 문자열 만들기 (0) | 2022.09.08 |
최댓값과 최솟값 (0) | 2022.09.08 |