์ฃผ์ด์ง ์ซ์ ๋ฐฐ์ด์์, 0์ ๋ฐฐ์ด์ ๋ง์ง๋ง์ชฝ์ผ๋ก ์ด๋์์ผ์ฃผ์ธ์.
- ์๋ ์๋ ์ซ์์ ์์๋ ๋ฐ๊พธ์ง ๋ง์์ฃผ์ธ์.
- ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด์๋ ์ ๋ฉ๋๋ค.
Input: [0,1,0,3,12] Output: [1,3,12,0,0]
์ฒ์์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ 0๋ง ๋งจ ๋์ผ๋ก ์ด๋์์ผ์ฃผ๋ฉด ๋๋ ์ค ์๊ณ , pop()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ค ์์๋ค.
๋ค์ ์ฝ์ด๋ณด๋ ๋ฐฐ์ด ๋ด ๋ชจ๋ 0์ ๋์ผ๋ก ์ด๋์ํค๋ผ๋ ๊ฒ์ด์...
def move_zeroes(nums):
index = 0
for i in nums:
if 0 == i:
a = nums.pop(index)
nums.append(a)
index += 1
return nums
์ฐ์ for loop
์ ํตํด ๋ง์ฝ i๋ฒ์งธ ์์๊ฐ 0์ด๋ผ๋ฉด pop()
ํ ๋ค ๋ฐฐ์ด์ ๋งจ ๋ง์ง๋ง์ ํด๋น ์์๋ฅผ append()
ํ๋ ค๊ณ ํ๋ค.
์ฒซ๋ฒ์งธ ๊ฒ์ฆ์ ๋ฌด์ฌํ ๋์ด๊ฐ๋๋ฐ, ์์ธ์ง [0,0,9,0,12]
๋ ์ฒซ๋ฒ์งธ ์์๋ง ์ด๋๋๊ณ , ๊ทธ ์ดํ๋ก๋ ๋ณํ๊ฐ ์์๋ค. ์๋ฅผ ๋ค๋ฉด [0,9,12,0,0]
์ด๋ฐ์์ผ๋ก!
์ฌ์ค ๋ด๊ฐ ์๊ฐํ๋๋ก ์งํํ๋ฉด, for loop
์ด ์งํ๋๋ ์์ค์ ๋งจ ๋ค์ ์์๊ฐ ์ถ๊ฐ๋๋ ๊ฒ.
๊ทธ๋ผ ๋ฐ๋ณต๋ฌธ ๋์ค ๋ฐฐ์ด์ ์์๋ค์ด ๋ฐ๋์ด๋ฒ๋ฆฌ๋ ๊ฒ์ด ์๋๊ฐ ์ถ์ด์ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ ์๊ฐํ๊ธด ํ๋๋ฐ, ๊ณผ์ฐ ์ ๋ง ์ด๊ฒ ์์ธ์ด ๋ง๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
๐๐ป ๋ ์ฌ์ค ์ํฅ์ด ์์๋ค.
์ฒซ๋ฒ์งธ ๋ฐฐ์ด [0,1,0,3,12]
๋ ์์ ํ ์ด ์ข๊ฒ ์ป์ด๊ฑธ๋ ธ๋ ๊ฒ!
๋ด๊ฐ for loop
์ ์งํํจ๊ณผ ๋์์ ๋ฐฐ์ด ๋ด๋ถ๊ฐ ๋ฐ๋๊ธฐ ๋๋ฌธ์, index๋ผ๋ ์ซ์์ ๊ฐ์ด ๋์ด๋ ์๋ก, ๋ฐ๋ ๋ฐฐ์ด ๋ด์์ ํด๋น ์๋ฒ์ ์์๋ฅผ ์ฐพ๊ธฐ ๋๋ฌธ์, ์ ์ด์ ์ฑ๋ฆฝ๋ ์ ์๋ ๋ก์ง์ด์๋ค.
๊ฒฐ๋ก ์ ์ค๋ต..!
์์ ์์ ํ๊ฒ ๋ฐฐ์ด์ ๋ท๋ถ๋ถ๋ถํฐ ๊ฒ์ฌ๋ฅผ ํ๋ฉด์ ๋ฐ๊พธ๋์ง, ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ด์ผ ํ๋ค.
(์์์๋ถํฐ ๋ฐ๊ฟ๋๊ฐ๋ฉด ์์ ํ ์์๊ฐ ํ์ด์ง๊ธฐ ๋๋ฌธ..!!)
def moveZeroes(nums):
last0 = 0
for i in range(0, len(nums)):
if nums[i] != 0:
nums[i], nums[last0] = nums[last0], nums[i]
last0 += 1
return nums
moveZeroes([0,1,0,3,12]);
def move_zeroes(nums):
x = list([(i, x) for i,x in enumerate(nums) if x==0])
for i in reversed(x):
del nums[i[0]]
for i in range(len(x)):
nums.append(0)
return nums
def move_zeroes(nums):
last_0 = 0 #๋ฐฐ์ด์ ์์๋ฅด 0๋ถํฐ ์์ํ๊ธฐ๋๋ฌธ์ด๋ค
for i in range(len(nums)):
if nums[i] != 0: #๋ฐฐ์ด์์ ์ซ์๊ฐ 0์ด ์๋๋ฉด
temp = nums[i] #0์ด ์๋์ซ์ temp์ ์ ์ฅ
nums[i] = nums[last_0]
nums[last_0] = temp #nums[last_0]์ temp 0์ด ์๋์ซ์์ ์ฅ
last_0 = last_0 + 1 #๊ทธ ๋ค์๋ฐฐ์ด์ ์ํด 1์ ๋ํ๊ธฐ
return nums