[JavaScript] LeetCode : Plus One
728x90

๋ฌธ์ œ

You are given a large integer represented as an integer array digits, where each digits[i] is the ith digit of the integer. The digits are ordered from most significant to least significant in left-to-right order. The large integer does not contain any leading 0's.

Increment the large integer by one and return the resulting array of digits.

 

์ •์ˆ˜์˜ ๋ฐฐ์—ด๋กœ ํ‘œ์‹œ๋˜๋Š” ํฐ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์š”์†Œ๋Š” ์ •์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜์ด๋‹ค.
์ˆซ์ž๋Š” ์™ผ์ชฝ->์˜ค๋ฅธ์ชฝ ์ˆœ์„œ๋กœ ์ตœ์ƒ์œ„์—์„œ ํ•˜์œ„์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค.
์ด ์ •์ˆ˜๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๊ฒฐ๊ณผ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

ํ’€์ด

var plusOne = function(digits) {
  let nums = [...digits];
  let joinedNumber = BigInt(nums.join(''));
  joinedNumber++;

  joinedNumber = joinedNumber.toString();

  return joinedNumber.split('');

};

๋ฌธ์ œ์น˜๊ณ  ์‚ฝ์งˆ์˜ ์‹œ๊ฐ„์ด ๊ต‰์žฅํžˆ ๊ธธ์—ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋นผ๊ณ  ์ชผ๊ฐœ๋ ค๋Š” ์ƒ๊ฐ์„ ๋จผ์ € ํ•ด์„œ ์‚ฝ์งˆ์„ ๊ธธ๊ฒŒ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜๋Š” ๋ฐฐ์—ด์˜ ์ˆ˜๋“ค์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์„œ ๋”ํ•œ ๋’ค ๋‹ค์‹œ ์ชผ๊ฐœ๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ,
์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ์ƒ๊ฐํ–ˆ์„ ๋•Œ ์ข‹์•„๋ณด์ด์ง„ ์•Š๋Š”๋‹ค.

์ƒ๊ฐํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ํ•˜๋‚˜๋กœ ๋ชจ์•„ ๋ณ€์ˆ˜์— ๋‹ด์•„ ์ •์ˆ˜ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  • 1์„ ๋”ํ•œ๋‹ค.
  • 1์„ ๋”ํ•œ ๋ณ€์ˆ˜๋ฅผ ๋ฌธ์žํ™”ํ•ด์„œ split ๋ฉ”์„œ๋“œ๋กœ ํ•˜๋‚˜์”ฉ ์ชผ๊ฐ ๋‹ค.

์ •์ˆ˜ํ™”๋ฅผ BigInt๋กœ ํ•œ ์ด์œ ๋Š” ์‹คํ–‰ ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค๋ณด๋‹ˆ input ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ทผ 20์ž๋ฆฌ ๊ฐ€๊นŒ์ด ๋˜์—ˆ๋Š”๋ฐ,
Number๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

 

 

 

๋‹ค๋ฅธ ํ’€์ด

var plusOne = function(digits) {
    for (let i = digits.length - 1; i != -1; i--) {
        if (digits[i] != 9) {
            digits[i] += 1
            return digits
        }
        digits[i] = 0
    }
    digits.unshift(1) //Getting here means everything was a 9, so it's now all 0's, meaning we should add a 1 in front.
    return digits
};

 

LeetCode์˜ ํ† ๋ก ๊ฒŒ์‹œํŒ์—์„œ ๋ณธ ๋‹ค๋ฅธ ํ’€์ด์ด๋‹ค.
for๋ฌธ์˜ i๋ฅผ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋กœ ์ง€์ •ํ•œ๋‹ค.
๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ 9๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด 1์„ ๋”ํ•ด์ฃผ๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค.
9์ผ๊ฒฝ์šฐ์—๋Š” ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค.

๋งˆ์ง€๋ง‰์˜ unshift ๋ฉ”์„œ๋“œ๋กœ 1์„ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๊ฒƒ์€, ๋ชจ๋“  ์ˆซ์ž๊ฐ€ 9์˜€๋˜ ์ƒํƒœ์ผ ๋•Œ ๋งจ ์•ž์— 1์„ ๋ถ™์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
์ด ์ฝ”๋“œ๊ฐ€ ์›๋ž˜ ๋ฌธ์ œ์˜ ๋ชฉ์ ์— ๋” ๋ถ€ํ•ฉํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.
์›๋ฌธ์€ ์•„๋ž˜ ๋งํฌ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

https://leetcode.com/problems/plus-one/discuss/808473/Javascript

 

Javascript - LeetCode Discuss

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

 

 

 


๐Ÿคธ‍โ™€๏ธ๐Ÿคธ‍โ™€๏ธ๐Ÿคธ‍โ™€๏ธ๐Ÿคธ‍โ™€๏ธ๐Ÿคธ‍โ™€๏ธ๐Ÿคธ‍โ™€๏ธ

๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ™Œ

ํฌ์ŠคํŒ…๋“ค์€ ๊ณต๋ถ€์ค‘์ธ ๋‚ด์šฉ์„ ๊ธ€๋กœ ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋ผ ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

๋ถ€์กฑํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฝ”๋ฉ˜ํŠธ๋Š” ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค.

์ข‹์€ ํ•˜๋ฃจ ๋˜์„ธ์š”, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ™‚

728x90

'๐Ÿ““ Algorithm > LeetCode' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] leetCode : Linked List Cycle II  (3) 2022.05.03
[JavaScript] leetCode : Valid Mountain Array  (3) 2022.05.02
[JavaScript] LeetCode : Add Binary  (0) 2022.04.22
[JavaScript] LeetCode : Largest Number At Least Twice of Others  (1) 2022.04.20
[JavaScript] LeetCode : Find Pivot Index  (1) 2022.04.20