문제
접근방법
1. 0이 아닌 숫자들은 배열의 앞에서부터 채워나가고 0이면 넘어간다.
2. 1번을 하고 남은 배열의 인덱스는 모두 0으로 채운다.
소스코드
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int idx = 0;
for(int i : nums){
if(i != 0) {
nums[idx] = i;
idx++;
}
}
for(int i =idx; i<nums.size(); i++){
nums[i] = 0;
}
}
};
1. idx는 0이 아닌 숫자가 나왔을 때 nums에 저장되는 인덱스(순서)를 의미한다.
2. 첫 번째 for문 : 0이 아닌 숫자에 대해서 nums[idx]에 저장한 후 idx를 +1 해준다.
3. 두 번째 for문 : idx부터 nums의 끝까지 0으로 채워준다.
'개인 공부 > 코딩테스트' 카테고리의 다른 글
[C++][백준] 11726번 2×n 타일링 :: seoftware (0) | 2020.04.07 |
---|---|
[C++][leetcode] Best Time to Buy and Sell Stock II :: seoftware (0) | 2020.04.05 |
[C++][leetcode] Maximum Subarray :: seoftware (0) | 2020.04.03 |
[C++][leetcode] single number :: seoftware (0) | 2020.04.03 |
[C++][leetcode] happy numbers :: seoftware (0) | 2020.04.03 |
댓글