Miyeon

#46 Reverse Integer

2021-06-16Algorithm

๐Ÿ”ฅ Reverse Integer ๐Ÿ”ฅ

Example 1:

Input: x = 123;
Output: 321;

Example 2:

Input: x = -123;
Output: -321;

Example 3:

Input: x = 120;
Output: 21;

Example 4:

Input: x = 0;
Output: 0;

์ ‘๊ทผ ์ˆœ์„œ

  1. ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ
  2. reverse ๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
  3. reverse ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ
  4. ๋ฌธ์ž์—ด์„ ์‹ค์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
  5. negative ๋ฐ˜์˜ํ•˜๊ธฐ
  6. reversed value๊ฐ€ -231 <= x <= 231 - 1 ์กฐ๊ฑด์„ ์ถฉ์กฑ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด 0 ๋ฆฌํ„ดํ•˜๊ธฐ
let reversed = function(x) {
  let reversedNumber =
    parseFloat(
      x
        .toString()
        .split("")
        .reverse()
        .join("")
    ) * Math.sign(x);

  if (-Math.pow(2, 31) <= reversedNumber && reversedNumber <= Math.pow(2, 31) - 1) {
    return reversedNumber;
  } else {
    return 0;
  }
};

WILT : What I Learned Today ๐Ÿค”

์ฝ”๋“œ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋งŒ๋‚œ ์‹ค์ˆ˜, ์–ด๋ ค์›€์€?

  • -Math.pow(2, 31) <= reversedNumber <= Math.pow(2, 31)-1 ์ด๋ ‡๊ฒŒ ์ด์ค‘์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์ž‘์„ฑํ•˜๋‹ˆ๊นŒ ํ•ญ์ƒ true๊ฐ’์ด ๋‚˜์™”๋‹ค. ์ž ์‹œ ๋ฉˆ์ถฐ์„œ ์ƒ๊ฐํ–ˆ์œผ๋ฉด ๋ฐœ๊ฒฌํ–ˆ์„ํ…๋ฐ ๋‹น์—ฐํžˆ ์กฐ๊ฑด์€ ๋ฌธ์ œ์—†์–ด!๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋‹ค๋ฅธ ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š๋ผ ์‹œ๊ฐ„์„ ์กฐ๊ธˆ ๋‚ญ๋น„ํ–ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ์–ด๋””์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ๋ฒ”์œ„๋ฅผ ์ค„์ด๋Š” ์ž‘์—…์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ๋‹ค.

์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ๋ถ€๋ถ„

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์กฐ๊ฑด๋ณ„๋กœ ๊ฐ๊ฐ ๋ถ„๋ฆฌํ•ด์•ผ ๋œ๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ๋‹ค. -Math.pow(2, 31) <= reversedNumber && reversedNumber <= Math.pow(2, 31)-1
  • parseFloat(string) : ๋ฌธ์ž์—ด์„ ์‹ค์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด ํ•จ์ˆ˜ ๋•๋ถ„์— Example 3์„ ์ถฉ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ฐธ๊ณ 

How to reverse a number in JavaScript