[Python] Code Kata Day14

rang-dev·2020년 6월 25일
0

Wecode - Code Kata

목록 보기
14/18

문제

주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜주세요.
원래 있던 숫자의 순서는 바꾸지 말아주세요.

  • 새로운 배열을 생성해서는 안 됩니다.
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

내코드

def moveZeroes(nums):
  zero_value_index = []
  for i in range(len(nums)):
    if nums[i] == 0:
      zero_value_index.append(i)
  zero_value_index = zero_value_index[::-1]
  for i in zero_value_index:
    del nums[i]
    nums.append(0)
  return nums

리스트에서 삭제가 여러번 일어날때는 index가 변화하므로 뒤에서부터 삭제해주기!!!!!⭐️⭐️⭐️⭐️⭐️

Model Solution

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

temp 변수없이 이렇게 간단하게 swap이 되다니..! 또 하나 알아갑니다..👶🏻

profile
지금 있는 곳에서, 내가 가진 것으로, 할 수 있는 일을 하기 🐢

0개의 댓글