문제링크
https://leetcode.com/problems/move-zeroes/
Move Zeroes - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
코드
1
2
3
4
5
6
7
|
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
nonzero = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[nonzero], nums[i] = nums[i], nums[nonzero]
nonzero += 1
|
cs |
POINT
two pointers를 사용한다. (nonzero & i)
nonzero pointer는 0이 아닌 값을 추가할 위치를 가리키는 pointer이고,
i pointer는 nums list를 탐색하는 pointer이다.
i가 nums 를 차례대로 탐색하다가 0이 아닌 값을 발견하면 현재 nonzero가 가리키고 있는 인덱스 값과 자리를 바꾼다. 이를 통해서 0이 아닌 값은 앞쪽에 배치되고 0인 수는 뒤로 밀리게 된다.
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode] 344. Reverse String (0) | 2022.03.03 |
---|---|
[LeetCode] 167. Two Sum II - Input Array Is Sorted (0) | 2022.03.02 |
[LeetCode] 189. Rotate Array (0) | 2022.03.01 |
[LeetCode] 977. Squares of a Sorted Array (0) | 2022.03.01 |
[LeetCode] 35. Search Insert Position (0) | 2022.02.28 |