알고리즘

[leetcode] 1089. Duplicate Zeros

개발정리 2021. 11. 7. 21:04

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++;
            }
        }
    }
}​

 

 

 

출처


 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com