283. Move Zeroes

mmmYoung·2022년 3월 14일
0

리트코드

목록 보기
10/21

문제 설명

Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Note that you must do this in-place without making a copy of the array.

정수형 배열 nums가 주어질 때, 모든 0을 끝으로 옮겨라. 단 0이 아닌 원소의 순서를 그대로 유지해야 한다.

  • 배열을 복사하지 않고 주어진 배열 위에서 실행해야 한다.

출력 예시

접근 방법

첫번째 시도

배열을 탐색하면서 0인 원소를 제거하는 동시에 갯수를 센다. 모든 원소 탐색이 끝나면 갯수만큼의 0을 삽입한다.

소스코드

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int cnt=0;
        for(auto itr=nums.begin(); itr<nums.end(); itr++){
            if(*itr == 0){
                nums.erase(itr,itr+1);
                itr--;
                cnt++;
            }
        }
        
        while(cnt--) nums.push_back(0);
    }
};

돌아보기

partition/stable_partition 함수 사용법 공부하기.

profile
안냐세여

0개의 댓글