๋ฌธ์
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
๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ
๋ฐฉ๋ฌธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐
ํฌ์คํ ๋ค์ ๊ณต๋ถ์ค์ธ ๋ด์ฉ์ ๊ธ๋ก ์์ฑํ ๊ฒ์ด๋ผ ๋ถ์กฑํ ์ ์ด ๋ง์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
๋ถ์กฑํ ๋ถ๋ถ์ ๋ํ ์ฝ๋ฉํธ๋ ์ธ์ ๋ ํ์์ ๋๋ค.
์ข์ ํ๋ฃจ ๋์ธ์, ๊ฐ์ฌํฉ๋๋ค! ๐
'๐ 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 |
Comment