정수 num1
, num2
가 매게변수로 주어질 때, num1
을 num2
로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.
num1 | num2 | result |
---|---|---|
10 | 5 | 2 |
7 | 2 | 3 |
num1
이 10, num2
가 5이므로 10을 5로 나눈 몫 2를 return 합니다.num1
이 7, num2
가 2이므로 7을 2로 나눈 몫 3을 return 합니다.function solution(num1, num2) {
return parseInt(num1/num2);
}
num1
과 num2
를 나눈 값을 parseInt()
함수로 float
에서 int
형으로 캐스팅한다.
parseInt()
함수는 소수점을 버림하고 정수만을 return해준다.
parseInt()
함수에서 리턴 받은 값을 다시 리턴하여 문제를 해결한다.
많고 다양한 해결방안이 많지만 그 중에서 가장 생각하지 못한것을 가져와본다.
function solution(num1, num2) {
return ~~(num1/num2);
}
위 해결방안이 가장 독특(?)해 보였는데 그건 아직 javascript를 다 뜯어먹지 못해 그런거같긴하지만..
~~
는 Math.floor()
와 같은 기능을 한다고 한다.~
는 비트 연산자의 not이고, x에 대해 NOT 비트 연산을 하면 -(x + 1)의 결과를 도출하며 소수점은 버려진다.~-5
는 4
로 계산된다.~~
는 ~
로 연산한 값에 다시 ~
연산을 하여 값을 도출한다.실행 속도는
~~
> Math.Floor()
> parseInt()
순서로 속도가 빠르다고 한다.