(코드카타) - 0은 뒤가 어울려

문제


주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜라. 원래 있던 숫자의 순서는 바꾸면 안된다.
새로운 배열을 생성해서는 안 된다.
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

첫번째 풀이


def move_zeroes(nums):
  zero_count = nums.count(0)
  
  while zero_count > 0:
    nums.append(0)
    nums.remove(0)
    zero_count -= 1

  return nums

count함수를 이용해서 nums 리스트 안에 있는 0의 개수를 모두 찾아준다.
이렇게 찾은 0을 모두 뒤로 빼주어야 하니, 0의 개수만큼 while문을 돌려주자.

append함수는 해당 인수를 리스트 index 맨 뒤로 넣어준다.
remove함수는 중복되는 인수가 있을 시에 맨 처음으로 찾은 인수를 제거한다.

따라서 0을 맨뒤로 우선 넣어준뒤, 차례대로 0을 제거해주면 해당하는 0의 개수만큼 리스트 맨뒤로 0이 들어가고 중간에 껴있는 0들은 모두 제거된다.

좋은 웹페이지 즐겨찾기