20200423 가즈아ㅏㅏㅏ

춤추는망고·2020년 4월 23일
0

정리 전 블로그 글들

목록 보기
20/40
post-thumbnail

슈퍼개발자, 춤추는망고입니다.

( 춤 안춥니다. )





이번 시리즈는...

하루에 한알!

1일 1 알고리즘 풀기 !


입니다.
( 우와아아아앙아ㅏㅏㅏㅏ~!!!! )




오늘의 문제!

주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜주세요.
원래 있던 숫자의 순서는 바꾸지 말아주세요.
( 새로운 배열을 생성해서는 안 됩니다. )


예시)

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

시작조건쓰!

def moveZeros(nums):

	return nums








문제를 보니,

  1. 인자로써 받은 list 를 조건에 맞게 변환하여,

  2. 다른 변수나 list 를 생성하지 않고,

  3. 명령에 의해 바뀐 list 를 반환해야한다!

라는 내용인 것 같네요.







그렇다면,



저희가 확실히 파악할 수 있는 내용은

def moveZeros(nums):
# 주어진 함수의 이름은 " moveZeroes " 매개변수는 " nums "
# nums 라는 매개변수에는 0을 포함한 정수형 데이터만 들어있는 list 가 들어옴.
	return nums
# 함수가 반환할 값은 매개변수로 받았던 " nums"

겠네요 ㅎ







조건을 보니



  1. 인자로 받은 list 안에 0이라는 값이 있으면,

  2. 그것을 list 의 맨 뒤로 보내는 명령을 실행한 뒤,

  3. 명령이 처리된 상태의 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

오늘의 결과 : 성공쓰!

정답이래요! ( > 3<)=3

기부니가 매우 좋군요 ㅎ




모범답안

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









오늘 하루도, 우리 모두 화이팅!





감사합니다. ( _ _)

profile
지금까지 이런 망고는 없었다. 이것은 개발자인가 춤추는망고인가

0개의 댓글