프로그래머스 Lv. 0 | Day 2 사칙연산, 조건문, 배열

doodoo·2023년 2월 6일
0

프로그래머스

목록 보기
3/10
post-thumbnail

👀 두 수의 나눗셈

문제

두 수의 나눗셈

풀이

✅ Math.floor()

function solution(num1, num2) {
    return Math.floor(num1 / num2 * 1000);
}

Math.floor() 함수는 주어진 숫자와 같거나 작은 정수 중 가장 큰 수 반환(숫자 내림)


✅ Math.trunc()

function solution(num1, num2) {
    return Math.trunc(num1 / num2 * 1000);
}

Math.trunc() 함수는 소수부분을 제거하고 정수만 반환 (양수, 음수 상관없이 무조건 소수부분 제거함)





👀 숫자 비교하기

문제

숫자 비교하기

풀이

function solution(num1, num2) {
    return num1 === num2 ? 1 : -1;
}




👀 분수의 덧셈

문제

분수의 덧셈

풀이

function solution(numer1, denom1, numer2, denom2) {
		// 분자
    const numer = denom1 * numer2 + denom2 * numer1;
		// 분모
    const denom = denom1 * denom2;
    
		// 두 수의 최대공약수 구하는 함수
    const getGCD = (num1, num2) => {
        let gcd = 1;
        for(let i = 2; i <= Math.min(num1, num2); i++) {
            if(num1 % i === 0 && num2 % i === 0) {
                gcd = i;
            }
        }
        return gcd;
    };

		// 분자와 분모의 최대공약수 구하기  
    const gcd = getGCD(numer, denom);
    // 분자와 분모를 각각 최대공약수로 나누기 
    return [numer / gcd, denom / gcd];
}
  1. 분수를 더한다.
    • 분자: (분모1 분자2) + (분모2 분자1)
    • 분모: 분모1 * 분모2
  2. 분모와 분자의 최대공약수를 구한다.
  3. 분모와 분자를 최대공약수로 나눈다.
  4. 배열에 분자, 분모를 넣고 리턴한다.

유클리드 호제법

function solution(numer1, denom1, numer2, denom2) {
    const numer = denom1 * numer2 + denom2 * numer1;
    const denom = denom1 * denom2;
    
    const getGCD = (num1, num2) => num1 % num2 === 0 ? num2 : getGCD(num2, num1 % num2);
    
    const gcd = getGCD(numer, denom);
    
    return [numer / gcd, denom / gcd];
}

유클리드 호제법으로 최대공약수를 구한다.

참고





👀 배열 두 배 만들기

문제

배열 두 배 만들기

풀이

✅ for

function solution(numbers) {
    const arr = [];
    for(let i = 0; i < numbers.length; i++) {
        arr.push(numbers[i] * 2);
    }
    return arr;
}

✅ for...of

function solution(numbers) {
    const arr = [];
    for(const num of numbers) {
        arr.push(num * 2);
    }
    return arr;
}

✅ map

function solution(numbers) {
    return numbers.map(num => num * 2);
}

✅ reduce

function solution(numbers) {
    return numbers.reduce((acc, curr) => [...acc, curr * 2], []);
}

0개의 댓글