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 | 
                            Tags
                            
                        
                          
                          - nextjs
 - rolldown
 - html
 - device in use
 - ELECTRON
 - camera access
 - 티스토리 성능
 - github lfs
 - silent printing
 - react-native
 - Git
 - electron-packager
 - react-native-dotenv
 - Recoil
 - augmentedDevice
 - dvh
 - Each child in a list should have a unique "key" prop.
 - 이미지 데이터 타입
 - animation
 - github 100mb
 - custom printing
 - github pdf
 - ffi-napi
 - adb connect
 - camera permission
 - Failed to compiled
 - vercel git lfs
 - Can't resolve
 - adb pair
 - npm package
 
                            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 |