알고리즘 13일차

문제 : 리스트의 0의 위치 끝으로 옮기기

단 다른 숫자의 배열을 건들지 말 것.

  1. 접근 방법 : index 요소를 찾아서 pop한 후 마지막에 insert 하려고 했음. 하지만 0 하나만 움직이고 나머지 것은 움직이지 않아 실패

  2. 해결 방법 : 버블 정렬 & 이중 for loop

  3. 코드 :

def move_zeroes(nums):
  for i in range(len(nums)-1):
  # 먼저 for loop 한 번 돌림
    for j in range(len(nums)-1):
    # 모든 요소를 자리수 상관없이 한 번 더 돌리기(12도 1,2)
      if nums[j] == 0:
        nums[j], nums[j+1] = nums[j+1], nums[j]
        #만일 0이라면 오른쪽으로 옮기기
  return nums

print(move_zeroes([0,1,0,3,12]))    

참고자료

버블정렬 자료

버블 정렬 안 쓰고 푸는 법(21.5.4)

  • 단순히 리스트의 합으로 자리 정해서 풀기
def move_zeroes(nums):
  array1 = []
  array2 = []
  for i in nums:
    if i != 0:
      array1.append(i)
    else:
      array2.append(i)
  return array1 + array2

print(move_zeroes([0,1,0,3,12]))
profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글

관련 채용 정보