๋ฌธ์ ์ค๋ช
์ฒซ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer1, denom1, ๋ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer2, denom2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ ๋ถ์๋ฅผ ๋ํ ๊ฐ์ ๊ธฐ์ฝ ๋ถ์๋ก ๋ํ๋์ ๋ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ์์๋๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ ์กฐ๊ฑด
- 0 <numer1, denom1, numer2, denom2 < 1,000
์ ์ถ๋ ฅ ์
numer1 | denom1 | numer2 | denom2 | result |
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์#1
- 1 / 2 + 3 / 4 = 5 / 4 ์ ๋๋ค. ๋ฐ๋ผ์ [5, 4]๋ฅผ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์#2
- 9 / 2 + 1 / 3 = 29 / 6 ์ ๋๋ค. ๋ฐ๋ผ์ [29, 6]์ return ํฉ๋๋ค.
< ๋์ ํ์ด >
Lv.1 ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์
๋ฌธ์ ์ค๋ช ๋ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ์์ ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์. ๋ฐฐ์ด์ ๋งจ ์์ ์ต๋๊ณต์ฝ์, ๊ทธ๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฃ์ด ๋ฐํํ๋ฉด ๋ฉ๋๋ค
y9s2n6.tistory.com
์ด ๋ฌธ์ ๋ฅผ ํ์์ ๋์ ์ฝ๋๋ฅผ ํ์ฉํด์ ํ์๋ค.
function gcd(a, b) {
while ( b!== 0 ) {
let tmp = b;
b = a % b;
a = tmp;
}
return a;
}
function lcm(a, b) {
return a*b / gcd(a, b);
}
function solution(numer1, denom1, numer2, denom2) {
let n1 = lcm(denom1, denom2);
let n2 = n1/denom1*numer1 + n1/denom2*numer2;
if(gcd(n1,n2) !== 1){
return [n2/gcd(n1,n2) , n1/gcd(n1,n2)]
}
else{
return [n2,n1];
}
}
'๊ธฐ์ฝ๋ถ์๋ก ๋ํ๋์ ๋' ๋ผ๋ ๋ถ๋ถ์ ์ฒ๋ฆฌํ๋ ๊ฒ ๋๋ฌธ์ ์ค๋ต์ด์๋ค๊ฐ ์กฐ๊ฑด๋ฌธ์ ์ถ๊ฐํด์ ์ ๋ต์ด ๋์๋ค.
๊ทผ๋ฐ ๋ญ๊ฐ ํ์ด๊ฐ ๋๊ณ ๋์ ๊พธ์ญ๊พธ์ญ ํผ ๋๋์ด๋ผ(???) ์ด ๋ฌธ์ ๋ฅผ ํธ๋ ๋ช ํํ ์๊ณ ๋ฆฌ์ฆ์ด ๊ถ๊ธํด์ก๋ค.
๊ธฐ์ฝ๋ถ์ : ๋ถ๋ชจ์ ๋ถ์์ ๊ณต์ฝ์๊ฐ 1 ๋ฟ์ธ ๋ถ์
๋ถ๋ชจ์ ๋ถ์๋ฅผ ๊ทธ๋ค์ ์ต๋๊ณต์ฝ์๋ก ๋๋๋ฉด ๊ธฐ์ฝ๋ถ์๊ฐ ๋๋ค.
< ๋ค๋ฅธ ์ฌ๋์ ํ์ด >
function fnGCD(a, b){
return (a%b) ? fnGCD(b,a%b) : b;
}
function solution(numer1, denom1, numer2, denom2) {
let num = numer1*denom2 + numer2*denom1;
let denom = denom1*denom2;
let gcd = fnGCD(num, denom);
return [num/gcd, denom/gcd];
}
fnGCD(a, b) : ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํด์ ์ต๋๊ณต์ฝ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
a%b๊ฐ 0์ด ์๋๋ฉด, fnGCD(b, a%b )๋ฅผ ํธ์ถํ๋ค.
a%b๊ฐ 0์ด๋ฉด b๋ฅผ ๋ฐํํ๋ค. ( ์ต๋๊ณต์ฝ์ : b )
๊ณตํต ๋ถ๋ชจ๋ฅผ ์ฌ์ฉํด์ ๋ถ์๋ฅผ ๊ณ์ฐํ๊ณ , ๊ณตํต ๋ถ๋ชจ๋ฅผ ๊ณ์ฐํ ๋ค, ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๊ทธ๋ค์ ์ต๋๊ณต์ฝ์๋ก ๋๋ ๊ฒ์ด๋ค.
'์๊ณ ๋ฆฌ์ฆ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.1 ์์ ์ฐพ๊ธฐ (0) | 2024.12.04 |
---|---|
Lv.1 ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2024.07.21 |
Lv.1 ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (2) | 2024.07.14 |
Lv.1 ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2024.07.10 |
Lv.1 ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2024.07.07 |