[분수의 덧셈]
문제
첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 < denum1, num1, denum2, num2 < 1,000
입출력 예
denum1 | num1 | denum2 | num2 | result |
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
Ex1) 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
Ex2) 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
💡나의 코드
function solution(denum1, num1, denum2, num2) {
var answer = [];
const topNum = denum1 * num2 + denum2 * num1;
const bottomNum = num1 * num2;
let minNum = topNum > bottomNum ? bottomNum : topNum;
while(true) {
if(topNum % minNum === 0) {
if(bottomNum % minNum === 0) {
return [topNum / minNum, bottomNum / minNum];
}
}
minNum = minNum - 1;
}
}
언제 배웠는지 기억도 안날정도로 흐릿한 분수의 덧셈...⭐
코드로 짜야한다는게 생각보다 어려웠다.
분자 분모중 작은 수를 찾고(삼항연산자 사용) 반복문으로 나눗셈을 나머지가 안생길때 까지 작은수 -1 해가며 돌린 후 중첩 if문으로 반복한다. (=최대공약수 찾기)
'[IT 지식] > 알고리즘' 카테고리의 다른 글
[프로그래머스 Lv0] 코딩테스트 입문 Day 3 - 중앙 값 구하기(feat. 자바스크립트) (0) | 2022.10.26 |
---|---|
[프로그래머스 Lv0] 코딩테스트 입문 Day 2 - 배열 두 배 만들기(feat. 자바스크립트) (0) | 2022.10.25 |
[프로그래머스 Lv0] 코딩테스트 입문 Day 2 - 숫자 비교하기(feat. 자바스크립트) (0) | 2022.10.25 |
[프로그래머스 Lv0] 코딩테스트 입문 Day 2 - 두 수의 나눗셈(feat. 자바스크립트) (0) | 2022.10.25 |
[프로그래머스 Lv0] 코딩테스트 입문 Day 1 - 사칙연산(feat. 자바스크립트) (0) | 2022.10.25 |
[분수의 덧셈]
문제
첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 < denum1, num1, denum2, num2 < 1,000
입출력 예
denum1 | num1 | denum2 | num2 | result |
1 | 2 | 3 | 4 | [5, 4] |
9 | 2 | 1 | 3 | [29, 6] |
Ex1) 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
Ex2) 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
💡나의 코드
function solution(denum1, num1, denum2, num2) {
var answer = [];
const topNum = denum1 * num2 + denum2 * num1;
const bottomNum = num1 * num2;
let minNum = topNum > bottomNum ? bottomNum : topNum;
while(true) {
if(topNum % minNum === 0) {
if(bottomNum % minNum === 0) {
return [topNum / minNum, bottomNum / minNum];
}
}
minNum = minNum - 1;
}
}
언제 배웠는지 기억도 안날정도로 흐릿한 분수의 덧셈...⭐
코드로 짜야한다는게 생각보다 어려웠다.
분자 분모중 작은 수를 찾고(삼항연산자 사용) 반복문으로 나눗셈을 나머지가 안생길때 까지 작은수 -1 해가며 돌린 후 중첩 if문으로 반복한다. (=최대공약수 찾기)
'[IT 지식] > 알고리즘' 카테고리의 다른 글
[프로그래머스 Lv0] 코딩테스트 입문 Day 3 - 중앙 값 구하기(feat. 자바스크립트) (0) | 2022.10.26 |
---|---|
[프로그래머스 Lv0] 코딩테스트 입문 Day 2 - 배열 두 배 만들기(feat. 자바스크립트) (0) | 2022.10.25 |
[프로그래머스 Lv0] 코딩테스트 입문 Day 2 - 숫자 비교하기(feat. 자바스크립트) (0) | 2022.10.25 |
[프로그래머스 Lv0] 코딩테스트 입문 Day 2 - 두 수의 나눗셈(feat. 자바스크립트) (0) | 2022.10.25 |
[프로그래머스 Lv0] 코딩테스트 입문 Day 1 - 사칙연산(feat. 자바스크립트) (0) | 2022.10.25 |