티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/120808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(denum1, num1, denum2, num2) {
const [ denum, num ] = [denum1 * num2 + denum2 * num1, num1 * num2 ]
const divisors = []
const commonDivisors = []
for(let i = denum; i >= 1; i--) {
if(denum % i === 0) {
divisors.push(denum / i)
}
}
for(let j = 0; j < divisors.length; j++) {
if(num % divisors[j] === 0) {
commonDivisors.push(divisors[j])
}
}
const GCD = Math.max(...commonDivisors)
return [denum / GCD, num / GCD]
}
- 공통분모(num1 * num2) 만들어서 더하기
- 분자의 약수 구하기 → divisors
- 위에서 구한 약수(divisiors)를 이용해 공약수 구하기 → commonDivisiors
- Math.max 이용해 최대공약수(GCD) 구하기
- 분자와 분모를 최대공약수(GCD)로 나누어 return

'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] Lv.0 - 짝수 홀수 개수 (javascript) (2) | 2022.12.28 |
|---|---|
| [프로그래머스] Lv.0 - 배열 두 배 만들기 (javascript) (0) | 2022.12.27 |
| [프로그래머스] Lv.0 - 숫자 비교하기 (javascript) (0) | 2022.12.18 |
| [프로그래머스] Lv.0 - 두 수의 나눗셈 (javascript) (0) | 2022.12.04 |
| [프로그래머스] Lv.0 - 몫 구하기 (javascript) (0) | 2022.11.27 |
댓글
