728x90
[Javascript] (LeetCode) 66. Plus One (Easy)
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
for (let i = 0; i < digits.length; i++) {
let idx = digits.length - 1 - i;
if (digits[idx] !== 9) {
digits[idx] += 1;
return digits;
}
if (digits[idx] === 9) {
digits[idx] = 0;
if (idx === 0) {
digits.unshift(1);
return digits;
}
continue;
}
}
};
- 1의 자리부터 높은 자리까지 차례대로 확인하면 된다.
- 9가 아닐 경우는 +1 하고 끝내면 된다.
- 9일 경우는 0으로 만들고 좌측으로 와서 9인지 확인해서 +1 또는 0으로 만들기를 하면된다.
- 이걸 마지막 자리수까지 한뒤에 마지막 자리일 경우는 unshift() 메서드를 활용해서 1을 넣어주면 끝!
다른 사람 풀이 참고한 풀이
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
for (let i = digits.length - 1; i >= 0; i--) {
digits[i]++;
if (digits[i] > 9) {
digits[i] = 0;
} else {
return digits;
}
}
digits.unshift(1);
return digits;
};
- 다른 사람 풀이를 보니 i 자체를 마지막 인덱스로 해서 i— 하는 형태로 했더라. 그래서 한 번 해봄. 이러면 for문 읽기 까다로워져서 잘 안쓰지만 연습삼아 걍 해봤음
- 1) 와우 그냥 일단 1 더해주고
- 2) 이후에 10인지 체크해서 0 만들어주고 다음루프로 ㄱㄱ
- 3) 다 끝난 다음에 return 안되었으면 (0번째가 9였으면) unshift(1) 해주기
- 와우!!!
배운 점, 느낀 점
- 다른 사람 코드 보는게 진짜 공부된당 굳굳
'Coding Test > LeetCode' 카테고리의 다른 글
[Javascript] (LeetCode) 49. Group Anagrams(Medium) (0) | 2022.09.17 |
---|---|
[Javascript] (LeetCode) 21. Merge Two Sorted Lists (Easy) (0) | 2022.08.09 |
[Javascript] (LeetCode) 13. Roman to Integer (Easy) (0) | 2022.08.08 |
[Javascript] (LeetCode) 206. Reverse Linked List (Easy) (0) | 2022.08.08 |
[Javascript] (LeetCode) 28. Implement strStr() (Easy) (0) | 2022.08.03 |
[Javascript] (LeetCode) 8. String to Integer (atoi) (Medium) (0) | 2022.08.02 |
[Javascript] (LeetCode) 125. Valid Palindrome (Easy) (0) | 2022.07.29 |
[Javascript] (LeetCode) 242. Valid Anagram (Easy) (0) | 2022.07.28 |
댓글