Description
정수 배열이 주어졌을 때 0이 발생할 때마다 0을 하나 더 생성하고 나머지 요소를 오른쪽으로 이동한다.
이 때 새로운 배열을 생성하지 않고 기존 배열에서 값 수정이 일어나야 한다.
Input: arr = [1,0,2,3,0,4,5,0]
Output: [1,0,0,2,3,0,0,4]
Input: arr = [1,2,3]
Output: [1,2,3]
Success
인덱스의 값이 0 이면, 뒤에서 두번째 인덱스부터 뒤로 한칸씩 보낸 후 0 이 나온 인덱스 앞에 값을 0 으로 수정해준다.
class Solution {
public void duplicateZeros(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] == 0) {
for (int j = arr.length - 2; j >= i; j--) {
arr[j+1] = arr[j];
}
arr[i+1] = 0;
i++;
}
}
}
}
출처
'알고리즘' 카테고리의 다른 글
[leetcode] 27. Remove Element (0) | 2021.11.09 |
---|---|
[leetcode] 88. Merge Sorted Array (0) | 2021.11.08 |
[leetcode] 977. Squares of a Sorted Array (0) | 2021.11.06 |
[leetcode] Find Numbers with Even Number of Digits (0) | 2021.11.06 |
[leetcode] 485. Max Consecutive Ones (0) | 2021.11.06 |