릿코드(LEETCODE)

283. Move Zeroes

cepiloth 2020. 4. 9. 22:21
반응형

https://leetcode.com/problems/move-zeroes/

 

Input: [0,1,0,3,12]

Output: [1,3,12,0,0]

 

벡터의 요소에서 0 인 수를 뒤로 shift 하는 문제

vector local 하나를 선언해서 0 채우고

nums 벡터의 0 이 아닌 숫자일때 arr 배열에 숫자를 넣어주고 offset 을 증가하는 식으로 풀었다.

 

bruth-force 풀이

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        
        vector<int> arr(nums.size());
        fill(arr.begin(), arr.end(), 0);
        int pos = 0;
        for(int i=0;i<nums.size(); i++) {
            if(nums[i] != 0) {
                arr[pos++] = nums[i];
            }
        }
        nums = arr;
    }
};

 

반응형