leetcode(리트코드)66-Plus One
leetcode(리트코드)66-Plus One
leetcode 66 - Plus One 문제입니다.
1. 문제
https://leetcode.com/problems/plus-one/
2. Input , Output
3. 분류 및 난이도
Eazy 난이도 문제입니다.
Top 100 Interview 문제입니다.
4. 문제 해석
- 벡터로 들어온 값을 하나의 정수로 봅니다. [1,2,3]은 123처럼 봅니다.
- 바뀐 정수에 +1을 한 값을 리턴합니다.
- 999,9999인 경우만 조심하면 어려울 게 없는 문제입니다.
5. code
c++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int carry= 0;
int size = digits.size()-1;
while(size>=0 && digits[size]==9)
{
digits[size]=0;
--size;
}
//만약 999,9999처럼 끝까지 9만 반복된 경우 뒤에 1을 넣고 반전시켜버립니다. 00001->10000처럼
if(size==-1)
{
digits.push_back(1);
reverse(digits.begin(),digits.end());
}
else
digits[size]++;
return digits;
}
};
6. 결과 및 후기, 개선점
코드에 대한 설명이 필요하신 분은 댓글을 달아주세요.!!
This post is licensed under CC BY 4.0 by the author.