📆 Date
🔑 Problem
python
List
를 사용해서 Queue
자료구조를 구현해보라고?
🛰️ Reference Site
🎽 Learn
java
에서 사용하는 java.util.Queue
나 C++
에서 제공하는 STL: Standard Template Library
수준으로 Queue 자료 구조를 구현하는 건 매우 복잡하고 어려운 일이다.
- 여기서 필요한 건
enqueue
와 dequeue
를 List
를 사용해서 어떻게 구현 할 것지? 가 관건!
- 기능을 살펴보면,
- enqueue : 데이터를 넣는다.
- dequeue : 데이터를 반환하고, 삭제한다.
- 이제
List
를 사용해 기능을 구현해보면,
q = []
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]
: 리스트에서 값 대신 인덱스를 사용해서 항목을 삭제하는 방법이다.
a = [-1, 1, 66, 25, 333, 333, 1234.5]
del a[0]
del a[2:4]
del a