[Leetcode] 29. Divide Two Integers
Problem
입력값인 divided를 divisor로 나누는 문제. Integer 범위를 벗어나면 그 마지막 범위를
| 구분 | 자료형 | 범위 |
|---|---|---|
| 정수형 | (signed) int | (2 ^ 31) -2,147,483,648 ~ 2,147,483,647 |
| 숫자형 | number | (2 ^ 53 - 1) ~ -(2 ^ 53 - 1) |
Solution
JS는 숫자 타입이 Number로 존재. 범위가 Integer와 다르기때문에 범위 계산을 미리 해둔다.
값을 나누고난뒤 소수점자리는 버린다.
나눈값이 범위를 넘었을땐 계산해둔 Integer범위를 리턴한다. 그게 아니라면 계산된 값을 리턴한다.
JS Code
js
/**
* @param {number} dividend
* @param {number} divisor
* @return {number}
*/
var divide = function(dividend, divisor) {
const left = -(2 **31)
const right = 2 ** 31 -1
let num = parseInt(dividend / divisor)
if (num < left) return left
else if (right < num) return right
else return num
};