Algorithm - 0 이동 시키기
문제
주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜주세요. 원래 있던 숫자의 순서는 바꾸지 말아주세요.
새로운 배열을 생성해서는 안 됩니다.
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
방법 1
def move_zeroes(nums):
i = 0
count = 0
while count < len(nums) :
if nums[i] == 0 :
nums.append(nums[i])
del nums[i]
count = count +1
continue
i = i + 1
count = count + 1
return nums
내가 풀었던 방법은 append를 이용하고 del함수를 사용해서
첫번째 부터 차례대로 검사하여 0일 경우 list.append()를 하고
삭제한다. 삭제될 경우 앞에 인자가 한칸 당겨서 올테니 i는 +1 하지말기로 한 countinu 함수를 사용하여 다시 while문을 돈다.
count 라는 변수를 줘서 len(nums) 만큼 실행시키고 마지막을 리턴시킨다. 좋은 방법인지는 모르겠지만 일단 다른 방법에 비해 코드가 길고 함수를 두개나 사용했기 때문에 별로 지향하진 않는다.
방법 2
def move_zeroes(nums):
j = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[i], nums[j] = nums[j], nums[i]
j += 1
return nums
두번째 방법은 앞뒤로 비교해서 0을 뒤로 넘기는 방법이다
갑자기 지금 보니까 이해가 안된다.. 아시는 분은 댓글 달아주세요
Author And Source
이 문제에 관하여(Algorithm - 0 이동 시키기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gogimon/Algorithm-move-zero-to-end저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)