https://leetcode.com/problems/plus-one/
풀이 참조: https://the-dev.tistory.com/55
public int[] plusOne(int[] digits) {
int carry =1 ;
int index = digits.length -1;
while (index >= 0 && carry > 0) {
digits[index] = (digits[index] + 1) % 10;
carry = (digits[index] == 0) ? 1: 0;
index--;
}
if (carry > 0) {
digits = new int[digits.length +1];
digits[0] = 1;
}
return digits;
}
뒷자리 숫자만 바꾸고 저장하는데 % 10을 해서 두자리이면 뒷자리만 저장되게 함.
그리고 그 뒷자리가 0이면 carry를 1로 해서 그 다음 자리에 1을 더해 증가시킨다.
다 끝났는데 아직도 carry 가 1이라면 숫자 앞자리가 늘어나야 하고, 뒤는 0 index 빼고는 0이다.
따라서 1 증가한 배열(0으로초기화됨)을 만들고 index 0만 1로 바꾼다.
'알고리즘 > 리트코드' 카테고리의 다른 글
LeetCode 88. Merge Sorted Array (Python) (0) | 2022.04.17 |
---|---|
LeetCode 35.Search Insert Position (Python) (0) | 2022.04.17 |
LeetCode 26. Remove Duplicates From Sorted Array (Python) (0) | 2022.04.17 |
LeetCode 1. Two Sum (Python) (0) | 2022.04.17 |