[JavaScript] 분수의 덧셈, 배열 문제

김주희·2024년 10월 22일

프로그래머스 입문 Lv.0 - Day2 사칙연산, 조건문, 배열


Q7) 분수의 덧셈

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

Sol7)

function solution(numer1, denom1, numer2, denom2) {
    var answer = [];
    // 1. 분자, 분모 통분 및 덧셈
    const numer = numer1*denom2 + numer2*denom1;
    const denom = denom1*denom2;
    
    // 2. 분자분모의 최대공약수로 나눠줌(약분)
    // 2-1. 분자분모 중 작은 수 찾기
    let minNumber;
    if (numer < denom) {
        minNumber = numer;
    } else {
        minNumber= denom;
    }
    
    // 2-2. 작은 수를 분자분모로 나눠보기
    // 2-2-1. 둘다 나누어 떨어지면 그 나눈 수가 최대공약수
    // 2-2-2. 안 나누어 떨어지면 작은 수를 1 줄이고 2-2로 돌아가기 
    while(true) {

        if (numer % minNumber === 0) {
            if (denom % minNumber === 0) {
                return [numer / minNumber, denom / minNumber];
            }
        }
        minNumber = minNumber - 1;
    }
    
}

Q8) 배열 두 배 만들기
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

Sol8)

function solution(numbers) {
    var answer = [];
    
    for (i = 0; i < numbers.length; i++) {
        // answer.push(numbers[i] * 2);
        answer[i] = numbers[i] * 2;
    }
    
    return answer;
}

// 1. 배열 안에서 원소 꺼내야 함.
// 2. 원소를 꺼내 2배를 한 후 새 배열에 넣어줘야 함.

0개의 댓글