SG의 개발 공부로그

두 수의 나눗셈 [프로그래머스 코딩테스트 입문] 본문

CodingTest

두 수의 나눗셈 [프로그래머스 코딩테스트 입문]

DebeloperSG 2023. 1. 4. 14:06
728x90

나머지 구하기

 

문제 설명

정수 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

 

 

입출력 예 설명

입출력 예 #1

  • num1이 3, num2가 2이므로 3 / 2 = 1.5에 1,000을 곱하면 1500이 됩니다.

 

입출력 예 #2

  • num1이 7, num2가 3이므로 7 / 3 = 2.33333...에 1,000을 곱하면 2333.3333.... 이 되며, 정수 부분은 2333입니다.

 

입출력 예 #3

  • num1이 1, num2가 16이므로 1 / 16 = 0.0625에 1,000을 곱하면 62.5가 되며, 정수 부분은 62입니다.

 

 

풀이

num1 과 num2 / 나눈 후 * 곱한다.

parseInt() 함수를 사용하는 주요 목적은 문자열에서 숫자를 추출하기 위함이지만

여기서 쓰인 parseInt() 함수는 부동 소수점 값은 무시하기위해 쓰였다.

 

소수값을 버리는 함수인 Math.floor 를 써도 된다.

function solution(num1, num2) {
    let answer = parseInt((num1 / num2)*1000) ;
    return answer;
}

 

 

다른 풀이

Math.trunc()는 소수점 이하는 다 버리기 때문에 숫자가 -23.3 음수인 경우에도 그저 -23을 Return한다.
Math.floor()는 -23.3인 경우에 내림을 하기 때문에 -24를 Return하게 된다. 그러므로, 그저 소수점을 버릴 것이냐, 아니면 수학적인 계산이 필요하여 음수인 경우에도 적용할 것이냐에 따라 선택하면 될 것이다.

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

 

728x90