[프로그래머스/자바스크립트(JavaScript)] 최대공약수와 최소공배수
글 작성자: 망고좋아
반응형
🎯 최대공약수와 최소공배수
📁 문제 출처
💡 생각
- 최대공약수는 유클리드 호제법 사용
- 최소공배수는 a * b / gcd(a, b)로 풀이
🛠 나의 코드
function gcd(a, b) {
while(b > 0) {
let temp = a;
a = b
b = temp % b;
}
return a
}
function lcm(a, b) {
return a * b / gcd(a, b)
}
function solution(n, m) {
let answer = [];
answer.push(gcd(n, m));
answer.push(lcm(n, m));
return answer;
}
리팩토링
function solution(n, m) {
const gcd = (a, b) => a % b === 0 ? b : gcd(b, a % b);
const lcm = (a, b) => a * b / gcd(a, b);
return [gcd(n, m), lcm(n, m)];
}
b > 0
를a % b === 0
로 표현할 수 있고 삼항 연산자를 사용해서 참이면 최대공약수인 b를 return, 아니면 재귀를 사용해서gcd(b, a % b)
반복- 화살표 함수와 삼항 연산자를 사용해서 코드를 깔끔하고 효율적으로 짤 수 있다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바스크립트(JavaScript)] 정수 제곱근 판별 (0) | 2021.09.17 |
---|---|
[프로그래머스/자바스크립트(JavaScript)] 제일 작은 수 제거하기 (0) | 2021.09.17 |
[프로그래머스/자바스크립트(JavaScript)] 정수 내림차순으로 배치하기 (0) | 2021.09.15 |
[프로그래머스/자바스크립트(JavaScript)] 하샤드 수 (0) | 2021.09.15 |
[프로그래머스/자바스크립트(JavaScript)] 핸드폰 번호 가리기 (0) | 2021.09.15 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스/자바스크립트(JavaScript)] 정수 제곱근 판별
[프로그래머스/자바스크립트(JavaScript)] 정수 제곱근 판별
2021.09.17 -
[프로그래머스/자바스크립트(JavaScript)] 제일 작은 수 제거하기
[프로그래머스/자바스크립트(JavaScript)] 제일 작은 수 제거하기
2021.09.17 -
[프로그래머스/자바스크립트(JavaScript)] 정수 내림차순으로 배치하기
[프로그래머스/자바스크립트(JavaScript)] 정수 내림차순으로 배치하기
2021.09.15 -
[프로그래머스/자바스크립트(JavaScript)] 하샤드 수
[프로그래머스/자바스크립트(JavaScript)] 하샤드 수
2021.09.15