class Solution {
    public void duplicateZeros(int[] arr) {
        int zeroCnt = 0;
		int len = arr.length;
		
		for (int i = 0; i < arr.length; i++) {
			if(arr[i] == 0) {
				zeroCnt++;
			}
		}
		
		for(int i = len-1 ; i >= 0; i--) {
			int j = i + zeroCnt;
			
			if(arr[i] == 0) {
				if(j < len) {
					arr[j] = 0;
				}
				j--;
				zeroCnt--;
			}
			
			if(j < len) {
				arr[j] = arr[i];
			}
		}  
    }
}

Two Pointer를 사용하여 해결할 수 있음 (i에 있는 값을 j로 복사)

새로운 배열 없이 arr배열에서 만 해결해야함

앞에서부터 하면은 데이터가 유실되서 불가능

https://leetcode.com/problems/duplicate-zeros/solution/