[프로그래머스 | JavaScript] 몫 구하기

728x90
반응형

Math.floor

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

*  Math.floor  메서드는 소수점 이하를 내림한 정수 반환 

 

[추가 공부] 더블 틸트 연산자 (~~)  

function solution(num1, num2) {
    return ~~(num1/num2);
}

 

(1) 비트 NOT (~)

const a = 5;     // 00000000000000000000000000000101
const b = -3;    // 11111111111111111111111111111101

console.log(~a); // 11111111111111111111111111111010 //-6
console.log(~b); // 00000000000000000000000000000010 //2

console.log(~~a); //5
console.log(~~b); //-3


~~(3.2)  //3 

//양수는 계산값이 같지만 (7/2 =3.5)
Math.floor(7/2); //3
~~(7/2);         //3


//음수가 들어가면 계산값이 달라짐 (5/-3 : -1.6666666666666667)
Math.floor(5/-3); //-2
~~(5/-3);         //-1

* 피연산자의 비트 반전 (32비트 정수로 변환)

* 반환값 : -(n+1)의 값

* 더블 틸트 연산자 (~~) :  정수로 반환

 

 

** 프로그래머스 문제는 조건이 양수여서 더블틸트연산자 사용해도 괜찮으나,

음수의 범위는 값이 달라지니 조금 더 공부해봐야 할 것 같음..!

 

 

 

 

[출처]

1. 프로그래머스

2. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Bitwise_NOT

 

비트 NOT (~) - JavaScript | MDN

비트 NOT 연산자(~)는 피연산자의 비트를 반전시킵니다. 다른 비트 연산자와 마찬가지로 피연산자를 32비트 정수로 변환합니다.

developer.mozilla.org

 

 

반응형