치악산 복숭아
[Leetcode] 66. Plus One - C++ 본문
배열로 주어진 숫자에 1을 더해서 리턴하는 문제이다. (ex: [8, 9] -> [9, 9])
처음에는 자릿수가 하나 늘어나는 케이스를 생각하지 못해서 조금 헤맸었다.
- 접근 방법
- 가장 마지막 자릿수에 1을 더한다.
- 배열의 마지막부터 0번째 자리까지 거꾸로 돌면서 각 자릿수가 10인지 검사한다
- 10이라면 해당 자릿수를 0으로 바꾼다.
- 해당 인덱스가 맨 앞이 아니라면 1씩 올린다.
- 해당 인덱스가 맨 앞이라면 배열의 맨 앞에 '1'을 추가한다.
- 10이라면 해당 자릿수를 0으로 바꾼다.
- for문을 완료한 배열 리턴
- 구현 코드
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
digits[digits.size() - 1]++;
for(int i = digits.size() - 1; i >= 0; i--) {
if (digits[i] > 9) {
digits[i] = 0;
if (i > 0) {
digits[i - 1]++;
}
else {
digits.insert(digits.begin(), 1);
}
}
}
return digits;
}
};
'PS:0' 카테고리의 다른 글
[Leetcode] 1. Two Sum - C++ (2) | 2025.02.09 |
---|---|
[Leetcode] 383. Ransom Note - C++ (0) | 2025.02.07 |
[Leetcode] 20. Valid Parentheses - C++ (0) | 2025.02.02 |
[Leetcode] 278. First Bad Version - C++ (0) | 2025.02.01 |
[Leetcode] 409. Longest Palindrome - C++ (0) | 2025.01.31 |
Comments