주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시키는 프로그램을 작성해주세요.
원래 있던 숫자의 순서는 바꾸지 말아주세요.
새로운 배열을 생성해서는 안 됩니다.
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
우선 문제 분석을 하면 다음과 같습니다.
배열 내의 있는 0
의 위치로 그 뒤에 있는 숫자를 가져오는 것입니다.
index
는 0부터 시작합니다.
배열의 index
값이 0
이 아닌 다른 숫자라면 앞에 0이 있는 위치로 값을 바꾸어 주고,
앞의 0의 위치를 바꾼 숫자의 자리로 위치를 바꾸어줍니다.
코드를 통해 알아보겠습니다:
def answer(nums):
position = 0
for i in range(len(nums)):
if nums[i] != 0:
temp = nums[i]
nums[i] = nums[position]
nums[position] = temp
position += 1
return nums
temp
에 0이 아닌 숫자를 넣어줍니다.
0이 아닌 숫자의 자리에 nums[position] = 0 을 넣어줍니다.
nums[positino]= 0 자리에는 다시 temp를 넣어서 위치를 바꾸어줍니다.