let's get IT with DAVINA ๐ป
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ๋ถ์์ ๋ง์ ๋ณธ๋ฌธ
โ ๋ฌธ์ ์ค๋ช
์ฒซ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer1, denom1, ๋ ๋ฒ์งธ ๋ถ์์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ปํ๋ numer2, denom2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ ๋ถ์๋ฅผ ๋ํ ๊ฐ์ ๊ธฐ์ฝ ๋ถ์๋ก ๋ํ๋์ ๋ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ์์๋๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
๐ซ ์ ํ ์ฌํญ
0 <denum1, num1, denum2, num2 < 1,000
๐๏ธ ์ ์ถ๋ ฅ ์
numer1 | denom1 | numer2 | denom2 | result |
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
๐ก๋น๋'s ํ์ด
๋ง์ง๋ง ์ฝ๋ถ์ ์๊ฐ ๋ชปํ๋๋ ๊ณ~์ ์ ๋ต๋ฅ ์ด 33.3%์ฌ์ ๋ฏธ์ณ๋๋์ค...๐คฏ
function solution(numer1, denom1, numer2, denom2) {
let arr = []; //๋ฐฐ์ด ํํ return
let gcd=1; //์ต๋๊ณต์ฝ์
let lcm=denom1*denom2; //์ต์๊ณต๋ฐฐ์
let num=Math.max(denom1,denom2)
for(let i=2;i<=num;i++){
if(denom1%i===0&&denom2%i===0){
gcd=i; //๋ ์ ๋ค ๋๋ ๋จ์ด์ง๋ ์
}
}
lcm=lcm/gcd; //์ต์๊ณต๋ฐฐ์ = ์ต๋๊ณต์ฝ์๋ก ๋๋ ์ฃผ๊ธฐ
arr[0]=(numer1*(lcm/denom1))+(numer2*(lcm/denom2))
arr[1]=lcm;
//๊ฒฐ๊ณผ ๊ฐ ์ฝ๋ถํ๊ธฐ [2,14]=>[1,7]
let sm=1;
let num2=Math.min(arr[0],arr[1])
for(let i=2;i<=num2;i++){
if(arr[0]%i===0&&arr[1]%i===0){
sm=i;
}
}
return [arr[0]/sm,arr[1]/sm];
}
//1. denom1 & denom2 ์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ค
//2. ์ต์๊ณต๋ฐฐ์ % denom1์ numer1์ ๊ณฑํ๊ณ
//3. ์ต์๊ณต๋ฐฐ์ % denom2์ numer2์ ๊ณฑํ๊ณ
//4. ๋ ์์ ํฉ์ด ์ฒซ๋ฒ์งธ ์ธ์,
//5. ์ต์๊ณต๋ฐฐ์๊ฐ ๋๋ฒ์งธ ์ธ์๋ก ๋ฐฐ์ด return
๐ others' ํ์ด
๋ถ์์ ๋ถ๋ชจ์ ์ต๋์น๋ฅผ ๊ตฌํ ๋ค, ๊ธฐ์ฝ๋ถ์๋ก ๋ง๋ค์ด ๊ฒฐ๊ณผ๊ฐ ๋์ถ ๋ฐฉ๋ฒ..
์ซ์๋ฅผ ๋์ ํด๋ณด๋ฉฐ ๋ง์ด ๋๋ ์ ๋๋ ๊นจ๋ฌ์์ผ๋.. ํ๋ก ์ ๋ ์ฒ์๋ถํฐ ์ด ๋ฐฉ๋ฒ์ ๋ชปํ ๊ฒ ๊ฐ์๋ค..
function solution(denum1, num1, denum2, num2) {
//๋ถ์
let topNum = num1*denum2 + num2*denum1;
//๋ถ๋ชจ
let botNum = num1*num2
//์ต์ ๊ณต๋ฐฐ์
let max=1;
//์ฝ๋ถ
for(let i=2;i<=topNum;i++){
if(topNum%i===0&&botNum%i===0){
max=i;
}
}
return [topNum/max,botNum/max];
}
cf) ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ ์ค, ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ด๋ผ๋๊ฑธ ์์๋๋ฉด ์ข์ ๋ฏ ํ์ฌ ๊ฐ์์ ์จ๊ฐ ๋ธ๋ก๊ทธ ์ค๋ช ๊ธ์ ๋ดค์ผ๋.. ์๋ฌด๋ฆฌ ๋ด๋ ์ดํด๊ฐ ์๊ฐ์ง๋ง ์ ํธ๋ธ ๊ฐ์ ํ๋๋ฅผ ๋ณด๊ณ ์กฐ๊ธ ๊ฐ์ด ์กํ๋ค.
https://www.youtube.com/watch?v=J5Yl2kHPAY4
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
2๊ฐ์ ์์ฐ์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ ์ค ํ๋ (์ด์ธ์๋ ์์ธ์ ๋ถํด, ๋๋์ ๋ฑ)
2๊ฐ์ ์์ฐ์ a,b๊ฐ ์์ ๋ (๋จ, a>b) a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง๊ฐ r์ด๋ผ๊ณ ํ๋ฉด, a&b์ ์ต๋๊ณต์ฝ์=b&r์ ์ต๋๊ณต์ฝ์
์ด ์ฑ์ง์ ๋ฐ๋ผ, b๋ฅผ r๋ก ๋๋ ๋๋จธ์ง r2๋ฅผ ๊ตฌํ๊ณ , r์ ๋ค์ r2๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ๋๋จธ์ง๊ฐ 0์ด ๋์์ ๋์ ๋๋๋ ์๊ฐ a,b์ ์ต๋๊ณต์ฝ์์ด๋ค.
function gcd(a, b) { // ๋จ, a๊ฐ b๋ณด๋ค ์ปค์ผํจ. let R; while ((a % b) > 0) { R = a % b; //๋๋จธ์ง a = b; b = R; } return b; }โ
'DEV_IN > ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ (0) | 2023.03.09 |
---|---|
[Error] octal literals are not allowed in strict mode (0) | 2023.03.09 |
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ํผ์๋๋ ๋จน๊ธฐ(2) ๐ (0) | 2023.03.08 |
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ์ต๋น๊ฐ ๊ตฌํ๊ธฐ (4) | 2023.03.07 |
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ์ง์์ ํฉ (2) | 2023.03.07 |
Comments