diff --git a/easy/array/283.py b/easy/array/283.py new file mode 100644 index 0000000..f24cc84 --- /dev/null +++ b/easy/array/283.py @@ -0,0 +1,20 @@ +# Move Zeroes + +class Solution: + def moveZeroes(self, nums: list[int]) -> None: + next_idx = 0 + for i in range(len(nums)): + if nums[i] != 0: + nums[next_idx], nums[i] = nums[i], nums[next_idx] + next_idx += 1 + return + +""" +걸린 시간: 18분 + +복잡도: 리스트의 모든 요소를 확인하며 이동 여부를 결정하고 이동할때는 O(1)이므로 전체 시간복잡도는 O(n)이다. +주어진 리스트 내에서 이동하며, 포인터 하나만 활용하기 때문에 공간복잡도는 O(1)이다. + +해설: 앞에서부터 0이 아닌 숫자들을 정렬할 인덱스를 순차적으로 늘려가면서 0이 아닐때만 들어가야할 인덱스 값과 스위치하면 된다. +들어가야할 인덱스에 있는 값은 본인이 아닌 이상 무조건 0이다. +""" \ No newline at end of file