정수 num1
과 num2
가 매개변수로 주어질 때, num1
을 num2
로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
num1
≤ 100num2
≤ 100num1 | 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입니다.
function solution(num1, num2) {
return Math.trunc(num1 / num2 * 1000);
}
/* Math.trunc()는 소수점 이하는 다 버린다.
ex) Math.trunc(23.3) = 23, Math.trunc(-23.3) = -23 */
function solution(num1, num2) {
return Math.floor((num1/num2)*1000);
}
/* Math.floor()는 소수값이 존재할 때 소수값을 버리는 역할을 하는 함수이다.
ex) Math.floor(23.3) = 23, Math.floor(-23.3) = 24
음수인 경우에 소수점 아래를 내림하여 정수를 반환함. */
const solution = (num1, num2) => Math.floor((num1/num2)*1000);
// 화살표 함수의 유일한 문장이 'return'일 때 'return'과 중괄호({})를 생략할 수 있다.
const solution = (num1, num2) => ~~((num1/num2)*1000);
/* 틸트(Tilt) 연산자를 사용하게 되면 내부적으로 32비트 정수로 변환 후 NOT 연산자를 실행한다.
Tilt(~) 사용시 숫자의 소수점을 버리게 되며, ~(Tilt) 연산을 두번 시킴으로써 결과적으로는
원래 상태로 되돌리게 된다. Math.floor()와 동일하게 적용되는데 음수에서는 결과값이 달라질수 있다.
~~33.3; // 33
Math.floor(33.33); //33
~~-11.2; // -11
Math.floor(-11.2); // -12 */
출처 : 프로그래머스 스쿨 | 코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120806