티스토리 뷰
728x90
SMALL
처음 풀이
function solution(arr) {
while(arr.length>2){
arr.push(lcm(arr[0],arr[1]));
arr.splice(0,2);
}
if(arr.length===2){
return lcm(arr[0],arr[1]);
}
}
function lcm(n1,n2){
let num=1;
while(!(num%n1===0 && num%n2===0)){
num++;
}
return num;
}
유클리드 호제법 적용
function solution(arr) {
while(arr.length>2){
arr.push(arr[0]*arr[1]/gcd(arr[0],arr[1]));
arr.splice(0,2);
}
if(arr.length===2){
return arr[0]*arr[1]/gcd(arr[0],arr[1]);
}
}
function gcd(n1, n2) {
return n1%n2 ? gcd(n2, n1%n2) : n2;
}
리듀스 함수 사용
function solution(arr) {
return arr.reduce((acc, cur) => acc * cur / gcd(acc, cur));
}
function gcd(n1, n2) {
return n1%n2 ? gcd(n2, n1%n2) : n2;
}
728x90
LIST
'코딩테스트' 카테고리의 다른 글
코딩테스트 연습 > Summer/Winter Coding(2019) > 멀쩡한 사각형 (0) | 2020.08.25 |
---|---|
코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기 (0) | 2020.08.25 |
코딩테스트 연습 > 해시 > 위장 (0) | 2020.08.20 |
코딩테스트 연습 > 탐욕법(Greedy) > 구명보트 (0) | 2020.08.20 |
코딩테스트 연습 > 완전탐색 > 카펫 (0) | 2020.08.20 |
댓글
공지사항