코린이의 소소한 공부노트

[LeetCode/Easy] 283. Move Zeroes 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 283. Move Zeroes

무지맘 2022. 12. 10. 20:51

1. Input

1) int 배열 nums

 

2. Output

1) nums에 있는 모든 0을 뒤로 보낸 결과

2) 함수 타입이 void이므로 return문을 쓸 필요는 없다.

 

3. Constraint

1) 1 <= nums.length <= 10^4

2) - 2^31 <= nums[i] <= 2^31 - 1

3) 0이 아닌 숫자들의 순서는 그대로 유지되어야 한다.

 

4. Example

Input: nums = [0,1,0,3,12] -> Output: [1,3,12,0,0]

 

5. Code

1) 첫 코드(2022/12/10)

int pointer = nums.length-1, i = 0;
while(i<=pointer){
    if(nums[i]==0){
        System.arraycopy(nums,i+1, nums,i, nums.length-i-1);
        nums[pointer--] = 0;
    }else
        i++;
}

- 실행시간은 다소 긴 편이었지만 공간절약에서 나름 괜찮은 코드였다.