치악산 복숭아

[Leetcode] 66. Plus One - C++ 본문

PS:0

[Leetcode] 66. Plus One - C++

Juliie 2025. 2. 8. 23:38

문제 링크

 

배열로 주어진 숫자에 1을 더해서 리턴하는 문제이다. (ex: [8, 9] -> [9, 9])

처음에는 자릿수가 하나 늘어나는 케이스를 생각하지 못해서 조금 헤맸었다.

 

  • 접근 방법
    1. 가장 마지막 자릿수에 1을 더한다.
    2. 배열의 마지막부터 0번째 자리까지 거꾸로 돌면서 각 자릿수가 10인지 검사한다
      • 10이라면 해당 자릿수를 0으로 바꾼다.
        • 해당 인덱스가 맨 앞이 아니라면 1씩 올린다.
        • 해당 인덱스가 맨 앞이라면 배열의 맨 앞에 '1'을 추가한다.
    3. 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