문제 🔽
https://school.programmers.co.kr/learn/courses/30/lessons/12953
다른사람 풀이 🔽
// 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
// 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
function nlcm(num) {
return num.reduce((a,b) => a*b / gcd(a,b))
}
function gcd(a, b) {
return a % b ? gcd(b, a%b) : b
}
내풀이🔽
1. 성공 ⭕
function solution(arr) {
let answer = 0;
let maxNumber = Math.max(...arr);
let round=0;
while(answer===0){
++round;
let leastCommonMultiple =maxNumber*round
let array = arr.filter((num)=>{
return leastCommonMultiple%num===0
})
if(array.length==arr.length){
answer = leastCommonMultiple
break;
}
}
return answer;
}
느낀점🔽
주어진 N개의 수 중 가장큰 수의 배수중에 최대 공약수가 있음을 착안하여 풀이하였다.
다른 사람의 풀이를 보니 최대 공배수를 구한후 풀이를 진행한 것 같았다 ( greatest common divisor )
'Javascript' 카테고리의 다른 글
프로그래머스 코딩테스트 풀이(js) > 귤고르기(lv2) (0) | 2023.06.28 |
---|---|
프로그래머스 코딩테스트 풀이(js) > 멀리뛰기(lv2) (0) | 2023.06.27 |
프로그래머스 코딩테스트 풀이(js) > 점프와 순간이동(lv2) (0) | 2023.06.25 |
프로그래머스 코딩테스트 풀이(js) > 구명보트(lv2) (0) | 2023.06.24 |
프로그래머스 코딩테스트 풀이(js) > 예상 대진표(lv2) (0) | 2023.06.23 |