Skip to content

[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

  1. JS는 숫자 타입이 Number로 존재. 범위가 Integer와 다르기때문에 범위 계산을 미리 해둔다.

  2. 값을 나누고난뒤 소수점자리는 버린다.

  3. 나눈값이 범위를 넘었을땐 계산해둔 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
};