Skip to content

[Leetcode] 7. Reverse Integer โ€‹

Problem โ€‹

๋ฌธ์ œ ๋งํฌ

32-bit์˜ integer x๋ฅผ ๋’ค์ง‘์–ด์„œ ๋ฆฌํ„ดํ•˜๋ผ. ์ด๋•Œ [-2^31, 2^31 -1] ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด 0์„ ๋ฆฌํ„ดํ•œ๋‹ค.

Solution โ€‹

  1. ์Œ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒŒ์•…, ์Œ์ˆ˜๋ผ๋ฉด '-'์„ ๋”ฐ๋กœ ๋ณด๊ด€
  2. ๋ฌธ์ž๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ๊ฐ’์œผ๋กœ ์ถ”๊ฐ€ํ•จ, '-'์˜ ๊ฐ’๋งŒ ์ถ”๊ฐ€ํ•˜์ง€์•Š๋Š” ์กฐ๊ฑด์ฒ˜๋ฆฌ
  3. integer์˜ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฒ—์–ด๋‚˜๋ฉด 0์œผ๋กœ ์ฒ˜๋ฆฌ

JS Code โ€‹

js
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
  const str = `${x}`
  const isNegative = isNaN(str[0])
  let answer = isNegative ? '-' : ''
  
  for(let i = str.length-1; 0 <= i ; i--) {
      if (isNegative && i === 0) continue
      answer = answer.concat(str[i])
  }

  if (-Math.pow(2,31) <= +answer && answer <= Math.pow(2,31)-1) return +answer
  return 0
}