( 춤 안춥니다. )
이번 시리즈는...
하루에 한알!
1일 1 알고리즘 풀기 !
입니다.
(우와아아아앙아ㅏㅏㅏㅏ~!!!!)
주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜주세요.
원래 있던 숫자의 순서는 바꾸지 말아주세요.
( 새로운 배열을 생성해서는 안 됩니다. )
예시)Input : [ 0 , 1 , 0 , 3 , 12 ] Output : [ 1 , 3 , 12 , 0 , 0 ]
def moveZeros(nums):
return nums
- 인자로써 받은 list 를 조건에 맞게 변환하여,
- 다른 변수나 list 를 생성하지 않고,
- 명령에 의해 바뀐 list 를 반환해야한다!
라는 내용인 것 같네요.
def moveZeros(nums):
# 주어진 함수의 이름은 " moveZeroes " 매개변수는 " nums "
# nums 라는 매개변수에는 0을 포함한 정수형 데이터만 들어있는 list 가 들어옴.
return nums
# 함수가 반환할 값은 매개변수로 받았던 " nums"
- 인자로 받은 list 안에 0이라는 값이 있으면,
- 그것을 list 의 맨 뒤로 보내는 명령을 실행한 뒤,
- 그 명령이 처리된 상태의 list 를 return 하면 되겠네요!
# 생각이 난 명령!
for i in nums:
# 인자로 받은 list 안의 원소 i 에 대한 반복해줘! ( 1 ~ )
if i == 0 :
# 만약에 임의의 원소인 i 가 0 이라면, ( ~ 1 )
del nums[nums.index(i)]
# 그 원소 i 의 위치값의 원소를 삭제하고, ( 2 ~ )
nums.append(0)
# list 에 0 값을 추가해줘! ( 맨 뒤로 가니까! ) ( ~ 2 )
# 제출한 답안!
def moveZeroes(nums):
for i in nums:
if i == 0:
del nums[nums.index(i)]
nums.append(0)
return nums
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