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
};