큐: FIFO(First in First out)
1. 리스트 구현
queue = []
queue.append()
queue.pop(0) # 첫번째 원소 나가게 하기.
하지만 이런 식의 큐는 선호하지 않는다. 왜냐하면 pop(0)을 하면서 O(N)이 되기에 비효율적이기 때문!
2. deque: 양방향에서 넣을 수 있다.
from collections import deque
queue = deque(리스트)
queue.appendleft() # 앞에서 넣기
queue.popleft() # 뒤에서 꺼내기
queue.append() # 뒤에서 넣기
3. Queue
from queue import Queue
que = queue()
que.put() #추가
que.get() # 삭제
5번: 공주 구하기
dq에 왕자들이 다 들어있다고 생각한다.
본인 순서를 외치고 맨 뒤로 줄 선다.
k번째면 본인 순서만 외치고 뒤로 서지 않는다.
6번: 응급실
n번째 사람이 진료를 받으면 break
if 자기보다 값이 높으면 맨뒤로 보내기. -> any()
else: 자기보다 높은 값이 없어서 진료 받는 것이 확정이므로, 진료를 받는 횟수에 +1 하기.
7번: 교육과정설계
dq에 필수과목 넣기
현재 과목이 필수과목에 해당되는지 확인 후, 체크할 순서가 맞지 않으면 NO 출력.
'코딩 연습 > Python' 카테고리의 다른 글
섹션6: 완전탐색 (백트랙킹, 상태트리와 CUT EDGE)-DFS(깊이우선탐색)기초 (0) | 2021.11.18 |
---|---|
섹션5: 자료구조 활용_해쉬, 힙 (0) | 2021.11.18 |
섹션5: 자료구조 활용_스택 (0) | 2021.11.16 |
섹션4: 그리디 (0) | 2021.11.16 |
섹션4: 이분탐색(결정알고리즘) (0) | 2021.11.14 |