[CodeKata]Day14

박민하·2022년 6월 23일
0

python 문제

목록 보기
29/49
post-thumbnail

Code Kata 란, 2인 1조의 구성으로 서로 협력하여 하루에 한 문제씩 해결하는 과제입니다.


# 문제

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

새로운 배열을 생성해서는 안 됩니다.

Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

# 코드

def move_zeroes(nums):
    count = nums.count(0)
    nums = [i for i in nums if i not in {0}]
    for i in range(count):
        nums.append(0)
    return nums

# 풀이 과정

  1. for문을 사용해 값이 0인 경우 remove 했지만 out of range로 실패.
  2. 0값의 개수를 찾은 다음에 한번에 0을 지우는 방법
  • nums.remove(0) 은 0인 값 하나만 지워줌
  • list comprehension 사용

+ 그 외 코드

def move_zeroes(nums):
  count = 0
  for i in range(len(nums)):
    if nums[i] != 0:
      nums[count] = nums[i]
      count += 1
  for j in range(count, len(nums)):
    nums[j] = 0
  return nums
profile
backend developer 🐌

0개의 댓글