프로그래머스 문제)
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항)
0 <numer1, denom1, numer2, denom2 < 1,000
- 첫번째 코드 _ 실패
function solution(numer1, denom1, numer2, denom2) {
var answer = [];
var numer = 0;
var denom = 0;
var num = [2, 3, 5, 7, 11, 13, 17, 19];
if (denom1 === denom2) {
numer = numer1 + numer2;
denom = denom1;
console.log("같은 분모:", numer, denom);
} else {
denom = denom1 * denom2;
numer1 *= denom2;
numer2 *= denom1;
numer = numer1 + numer2;
console.log("다른 분모:", numer, denom);
}
for (let i = 0; i < num.length; i++) {
while (numer % num[i] === 0 && denom % num[i] === 0) {
numer /= num[i];
denom /= num[i];
}
}
answer = [numer, denom];
console.log("약분 결과:", numer, denom);
return answer;
}
- 두번째 코드_실패
function solution(numer1, denom1, numer2, denom2) {
var answer = [];
var numer = 0;
var denom = 0;
if(denom1===denom2){//분모가 같을 경우
numer = numer1+numer2;
denom=denom1;
console.log("분모가 같음 : ", numer, denom);
}else{//분모가 다를 경우
denom = denom1*denom2;
numer1*=denom2;
numer2*=denom1;
numer = numer1+numer2;
console.log("분모가 다름 : ", numer, denom);
}
//약분
for (let i = 19; i > 1; i--) {
while (numer % i === 0 && denom % i === 0) {
numer /= i;
denom /= i;
}
}
//값 입력
answer=[numer, denom];
console.log("결과 값 : ", numer, denom);
return answer;
}
흠...어떻게 해야 완벽하게 통과를 할 수 있을까?
- 세번째 코드_성공
function solution(numer1, denom1, numer2, denom2) {
var answer = [];
var numer = 0;
var denom = 0;
if(denom1===denom2){//분모가 같을 경우
numer = numer1+numer2;
denom=denom1;
console.log("분모가 같음 : ", numer, denom);
}else{//분모가 다를 경우
denom = denom1*denom2;
numer1*=denom2;
numer2*=denom1;
numer = numer1+numer2;
console.log("분모가 다름 : ", numer, denom);
}
//약분
for (let i = 1000; i > 1; i--) {
while (numer % i === 0 && denom % i === 0) {
numer /= i;
denom /= i;
}
}
//값 입력
answer=[numer, denom];
console.log("결과 값 : ", numer, denom);
return answer;
}
※ 제한된 숫자가 1000까지라고 되어있어서 1000부터 약분을 할 경우 성공이 된다!!
'JAVA공부' 카테고리의 다른 글
공원 산책 (0) | 2024.11.18 |
---|---|
달리기 경주_JAVA_시간의 복잡도_일부 성공 (0) | 2024.11.17 |
링크 유효성 검사 (2) | 2024.11.15 |
양꼬치_Math.floor / Math.trunc() (0) | 2024.11.14 |
JavaScript에서 swap (1) | 2024.11.13 |