January 3rd, 2020
์๋ ๋ ์กฐ๊ฑด์ด ์ ๊ฒฝ์ฐ์์ง๋ง ๊ทธ๋ฅ filter
ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ๊ธฐ์กด ๊ธธ์ด์์ ๋ถ์กฑํ ๋งํผ 0์ผ๋ก ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค ํ์ด์. ํ์ง๋ง ์ญ์ filter๋ ์๋ก์ด array๋ฅผ ๋ง๋ค์ด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์กฐ๊ฑด์ ๋ง์กฑ์ํค์ง ๋ชปํ์ด์.
๋ฌธ์ ์กฐ๊ฑด
1. You must do this in-place without making a copy of the array.
2. Minimize the total number of operations.
๊ฒฐ๊ตญ ์์ ํ์์ ํ๋ฉฐ 0์ธ ๊ฒฝ์ฐ ์ญ์ ํ๊ณ , ๋ช ๊ฐ ์ญ์ ํ๋์ง ๊ธฐ์ตํด๋๊ณ ๋์ค์ ๋ค์ ๋ถ์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์์ด์.
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
idx = 0
zerocounter = 0
while idx < len(nums):
if nums[idx] == 0:
del nums[idx]
zerocounter += 1
continue
idx += 1
nums += [0]*zerocounter
๋ฌด๋ํ์ง๋ง ์ฑ๋ฅ ํฅ์์ ๋ํด์ ์ข ๋ ๊ณต๋ถ๊ฐ ํ์ํ ๊ฒ ๊ฐ์์.