Move Zeroes

HeeSeong·2021년 8월 11일
0

LeetCode

목록 보기
5/38
post-thumbnail

🔗 문제 링크

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


❔ 문제 설명


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.


⚠️ 제한사항


  • 1<=nums.length<=1041 <= nums.length <= 10^4

  • 231<=nums[i]<=2311-2^{31} <= nums[i] <= 2^{31} - 1



💡 풀이 (언어 : Java)


다른 것을 이용하지 않고 주어진 배열만으로 해결하라고해서 난감했던 문제다. 풀이 방법은 0이 아닌 수의 인덱스의 위치를 기억하는 변수를 만들고 0이 아닌 수가 나오면 맨 앞에서부터 차례대로 그수로 바꿔준다. 0의 위치를 기록한 인덱스가 끝 인덱스에 도달할 때 까지 0을 넣어주면 된다.

class Solution {
    public void moveZeroes(int[] nums) {
        int idx = 0;
        for (int i=0; i<nums.length; i++) {
            if (nums[i] != 0) {
                nums[idx] = nums[i];
                idx++;
            }
        }
        while (idx < nums.length) {
            nums[idx] = 0;
            idx++;
        }
    }
}
profile
끊임없이 성장하고 싶은 개발자

0개의 댓글