Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ถ์์ ๋ง์ ๋ณธ๋ฌธ
๐ ๋ฌธ์
์ฒซ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer1, denom1, ๋ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer2, denom2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ ๋ถ์๋ฅผ ๋ํ ๊ฐ์ ๊ธฐ์ฝ ๋ถ์๋ก ๋ํ๋์ ๋ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ์์๋๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
- 0 <numer1, denom1, numer2, denom2 < 1,000
๐ก ์์ด๋์ด
๋ถ๋ชจ1, ๋ถ๋ชจ2๋ฅผ ๊ณฑํด์ ๊ณตํต ๋ถ๋ชจ๋ก ๋ง๋ค๊ณ , ๋ถ์์๋ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ถ๋ชจ๋ฅผ ๊ณฑํด์ค์ ๋ํด์ค๋ค.
๊ธฐ์ฝ ๋ถ์๋ก ๋ํ๋ด์ผ ํ๋ฏ๋ก ๋ถ์์ ๋ถ๋ชจ์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํด์ ๋๋ ์ค๋ค.
๊ทธ ๊ฐ์ answer์ ๋ฃ๋๋ค.
์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ ๋๋ '์ ํด๋ฆฌ๋ ํธ์ ๋ฒ'์ ์ฌ์ฉํ๋ค.
โ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ด๋?
โ๏ธ ๋ ์์ฐ์ ์ฌ์ด์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ
1. ๋ ์ ์ค์์ ํฐ ์๋ฅผ ์์ ์๋ก ๋๋๋ค.
2. ๋๋จธ์ง๊ฐ 0์ด๋ฉด ์์ ์๊ฐ ์ต๋๊ณต์ฝ์ ์ด๋ค.
3. ๋๋จธ์ง๊ฐ ์๋ค๋ฉด ์์ ์๋ฅผ ๋ค์ ๋๋จธ์ง๋ก ๋๋๋ค.
4. ๋๋จธ์ง๊ฐ 0 ์ด ๋ ๋, ๊ทธ ์๊ฐ ์ต๋๊ณต์ฝ์ ์ด๋ค.
function gcd(a, b) {
const remainder = a % b;
if (remainder === 0) return b;
return gcd(b, remainder);
}
// ํฐ ์, ์์ ์ ๊ตฌํ๋ ๋ถ๊ธฐ ๋๋ ํ์ x
// ์ด์ฐจํผ ํฐ ์๋ก ์์ ์ ๋๋๋ฉด ๋๋จธ์ง๊ฐ ์์ ์๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ทํจ์๋ก ๋ค์ด๊ฐ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ํฐ ์, ์์ ์๋ก ๋ฐ๋๋ค.
โ๏ธ ํ์ด
function solution(numer1, denom1, numer2, denom2) {
var answer = [];
let sumDenom = denom1 * denom2;
let sumNumer = (numer1 * denom2) + (numer2 * denom1);
let maxDiv = 0;
maxDiv = gcd(sumNumer, sumDenom);
answer.push(sumNumer / maxDiv);
answer.push(sumDenom / maxDiv);
return answer;
}
function gcd(a, b) {
const remainder = a % b;
if (remainder === 0) return b;
return gcd(b, remainder);
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ฃผ์ ์ซ์ 3 (0) | 2023.02.06 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋คํญ์ ๋ํ๊ธฐ (0) | 2023.02.06 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์๋ ์์ ํฉ (0) | 2023.02.03 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ์ง๋ (0) | 2023.02.03 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด (0) | 2023.02.03 |