Just Do IT!

[프로그래머스 Level 0] 120805-120809 (JavaScript) 본문

코딩테스트 준비/프로그래머스

[프로그래머스 Level 0] 120805-120809 (JavaScript)

MOON달 2022. 11. 11. 19:37
728x90
반응형

120805. 몫 구하기

문제 설명
정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.

제한사항
0 < num1 ≤ 100
0 < num2 ≤ 100

입출력 예
num1 num2 result
10 5 2
7 2 3
function solution(num1, num2) {
    return Math.floor(num1 / num2)
}
  • Math.floor() : 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환
  • 7과 2를 계산할 때 3.5가 아닌 3이 나오므로 Math.floor() 사용

 

 

120806. 두 수의 나눗셈

문제 설명
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

제한사항
0 < num1 ≤ 100
0 < num2 ≤ 100

입출력 예
num1 num2 result
3 2 1500
7 3 2333
1 16 62
function solution(num1, num2) {
    return Math.trunc(num1 / num2 * 1000);
}
  • Math.trunc(): 숫자의 정수 부분만 출력 (반올림은 적용되지 않는다)

 

 

120807. 숫자 비교하기

문제 설명
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.

제한사항
0 ≤ num1 ≤ 10,000
0 ≤ num2 ≤ 10,000

입출력 예
num1 num2 result
2 3 -1
11 11 1
7 99 -1
function solution(num1, num2) {
    if (num1 === num2) {
        return 1
    }
    else {
        return -1
    }
}

 

 

120808. 분수의 덧셈

문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 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]
function solution(denum1, num1, denum2, num2) {
    // 분모 핪 구하기
    let result_x = (denum1 * num2) + (denum2 * num1)
    // 분자
    let result_y = num1 * num2
    // 최소공배수
    let max_num = 1
    
    // 약분 (최소공배수 계산하기)
    for (let i = 1; i <= result_x; i++) {
        if (result_x % i === 0 && result_y % i === 0) {
            max_num = i
        }
    }
    
    return [result_x / max_num, result_y / max_num]
}
  • 분수의 덧셈 계산하던 것처럼 일단 분자 곱하고 분모 구해서 약분 안한 분수 만들기
  • for 문 돌리면서 최소공배수 계산하기
  • 약분 안한 분수를 최소공배수로 나눠서 return

 

 

120809. 배열 두 배 만들기

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

제한사항
-10,000 ≤ numbers의 원소 ≤ 10,000
1 ≤ numbers의 길이 ≤ 1,000

입출력 예
numbers result
[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]
[1, 2, 100, -99, 1, 2, 3] [2, 4, 200, -198, 2, 4, 6]
function solution(numbers) {
    var answer = [];
    
    for (let i = 0; i < numbers.length; i++) {
        answer.push(numbers[i] * 2)
    }
    return answer;
}
  • answer 이라는 새로운 배열 생성
  • numbers (원래 배열)의 길이만큼 for문 돌리면서 numbers의 원소에 2를 곱해 answer에 push
728x90