SOLUTION INFO
Python · main.py
class Solution:
def sortArrayByParity(self, nums: List[int]) -> List[int]:
N = len(nums)
left = 0
for i in range(N):
if nums[i] % 2 == 0:
nums[left], nums[i] = nums[i], nums[left]
left += 1
return nums
SOLUTION DESCRIPTION
풀이 설명
left는 다음 짝수가 들어갈 위치를 가리킨다. 배열을 순회하다 짝수를 만나면 left 위치의 값과 교환하고 left를 한 칸 이동한다. 순회가 끝나면 left 앞에는 짝수만, 뒤에는 홀수만 남는다. 시간 복잡도는 O(N), 추가 공간 복잡도는 O(1)이다.