Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- rolldown
- react-native
- 티스토리 성능
- Recoil
- camera permission
- Git
- dvh
- Each child in a list should have a unique "key" prop.
- react-native-dotenv
- npm package
- custom printing
- camera access
- device in use
- silent printing
- html
- 이미지 데이터 타입
- Can't resolve
- electron-packager
- adb pair
- augmentedDevice
- vercel git lfs
- ffi-napi
- Failed to compiled
- adb connect
- animation
- github lfs
- nextjs
- github pdf
- github 100mb
- ELECTRON
Archives
- Today
- Total
Bleeding edge
[LeetCode] 66. Plus One - 자바스크립트 0620 본문
1회차 풀이에서는 아주 큰 숫자가 대입되서 Wrong!이 나왔다. 문제는 아주 많은 숫자가 들어올 수 있다고 생각하고 BigInt를 사용하여 문제를 풀이하였다.
1. 주어진 문자를 join으로 문자로 만든다 주어진 arr가 [1,2,3]이라고 한다면 123이 된다.
digits.join("")
2. 1에서 구한 식을 BigInt로 감싼다. 이 때 결과값은 123n이 된다
BigInt(digits.join(""))
3. 2에서 구한식에 BigInt(1)을 더하고, 문자로 바꾼다. 이유는, BigInt는 바로 Split이 안되기 떄문이다.
(BigInt(digits.join("")) + BigInt(1)).toString()
4. 3에서 구한 것을 split한 후, 각 문자에 대하여 map을 취하여 숫자로 바꿔준다.
전체풀이
var plusOne = function (digits) {
return (BigInt(digits.join("")) + BigInt(1)).toString().split("").map((v) => Number(v))
};
테스트케이스를 항상 BigInt를 신경써서 문제를 풀이해야겠다.
'코딩테스트 공부' 카테고리의 다른 글
[LeetCode] 2284. Sender With Largest Word Count - 자바스크립트 0620 (0) | 2022.06.20 |
---|---|
[LeetCode] 118. Pascal's Triangle - 자바스크립트 0620 (0) | 2022.06.20 |
[LeetCode] 1701. Average Waiting Time - 자바스크립트 0617 (0) | 2022.06.17 |
[LeetCode] Reverse Prefix of Word - 자바스크립트 0617 (0) | 2022.06.17 |
[LeetCode] 1299. Replace Elements with Greatest Element on Right Side - 자바스크립트 0617 (0) | 2022.06.17 |