배열의 요소 중 0이 있으면 그 다음 인덱스에 해당하는 요소를 0으로 복제하고 인덱스 하나씩 뒤로 밀어줘야하는 문제
처음 문제를 본 후 든 생각은 '그냥 인덱스에 해당하는 요소가 0이면 한칸씩 미루고 0 하나 복제하면 되겠구나 ' 였다.
그래서 반복문을 사용해서 요소가 0일 때 하나씩 밀어주는 코드를 짰었는데 여기서 중요한 점은
뒤에서 부터 순차적으로 밀어야한다..(앞에서 부터 했다가 똑같은 숫자가 반복되는 경험을 함^^)
그것만 주의하면 어려운 건 없었다.
class Solution {
public void duplicateZeros(int[] arr) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == 0 && i + 1 < arr.length) {
for(int j = arr.length - 1; j > i + 1; j--) {
arr[j] = arr[j - 1];
}
arr[i + 1] = 0;
i++;
}
}
}
}