20221221 TIL | List 를 사용하여 Queue 자료구조를 구현하세요.

Choog Yul Lee·2022년 12월 21일
0

2022_TIL

목록 보기
2/2
post-thumbnail

📆 Date

  • 21st December 2022

🔑 Problem

  • python List 를 사용해서 Queue 자료구조를 구현해보라고?

🛰️ Reference Site

🎽 Learn

  • java에서 사용하는 java.util.QueueC++ 에서 제공하는 STL: Standard Template Library 수준으로 Queue 자료 구조를 구현하는 건 매우 복잡하고 어려운 일이다.
  • 여기서 필요한 건 enqueuedequeueList 를 사용해서 어떻게 구현 할 것지? 가 관건!
  • 기능을 살펴보면,
    • enqueue : 데이터를 넣는다.
    • dequeue : 데이터를 반환하고, 삭제한다.
  • 이제 List 를 사용해 기능을 구현해보면,
q = [] # 큐로 사용할 List 생성

def enqueue(item):
	q.append(item)

def dequeue():
    if len(q) > 0
		return q.pop(0)

🎁 Summary

List API

  • list.append(x) : 리스트 끝에 항목을 더한다. list[len(list):]=[x] 와 같다.
  • list.pop([i]) : 리스트에서 주어진 위치에 있는 항목을 삭제하고, 그 항목을 돌려준다. 인덱스를 지정하지 않으면, list.pop()은 리스트의 마지막 항목을 삭제하고 돌려준다. ( 메서드 시그니처에서 i 를 둘러싼 대괄호는 매개변수가 선택적임을 나타낸다. 그 위치에 대괄호를 입력해야 한다는 뜻이 아니다. )
  • list[i] : 인덱스에 있는 값에 접근 할 수 있다.
  • del list[i] : 리스트에서 값 대신 인덱스를 사용해서 항목을 삭제하는 방법이다.
# del example
a = [-1, 1, 66, 25, 333, 333, 1234.5]
del a[0] # -1 을 삭제한다.
# 결과값 [1, 66, 25, 333, 333, 1234.5]
del a[2:4] # 25, 333 을 삭제한다.
# 결과값 [1, 66, 333, 1234.5]
del a # 변수 a 자체를 삭제한다. 이후에 이름을 삭제할 수 없다.

0개의 댓글