반응형
큐
- FIFO(First In First Out): 먼저 들어간 데이터가 먼저 나오는 구조
- 작업 대기열이나 이벤트 처리에 사용
ADT
class Queue:
def __init__(self, size:int =10):
self.data = [None for _ in range(size)]
self.front = -1
self.rear = -1
self.size = size
def isEmpty(self): -> bool
if self.front == self.rear
return True
else:
return False
def isFull(self): -> bool
diff = self.rear - self.front
if diff < 0:
diff = self.size - abs(diff) + 1
else:
diff += 1
if diff == self.size:
return True
else:
return False
def push(self, data): -> None
if not self.isFull():
self.rear += 1
if self.rear == self.size:
self.rear = 0
self.data[self.rear] = data
return None
def pop(self): -> int|None
data = None
if not isEmpty():
self.front += 1
if self.front == self.size:
self.front = 0
data = self.data[self.front]
self.data[self.front] = None
return data
코딩테스트 라이브러리
from collections import deque
# 덱 생성
queue = deque()
# 맨 뒤 추가/삭제
queue.append(val)
queue.pop()
# 맨 앞 추가/삭제
queue.appendleft(val)
queue.popleft()
문제 추천
- 기능 개발(Lv2)
- 카드 뭉치(Lv1)
+)
- 다리를 지나는 트럭(Lv2)
기능 개발
카드 뭉치
def solution(cards1, cards2, goal):
answer = ''
cnt = 0
j, k = 0, 0
for i in range(len(goal)):
if (j < len(cards1)) and (goal[i] == cards1[j]):
cnt += 1
j += 1
elif (k < len(cards2)) and (goal[i] == cards2[k]):
cnt += 1
k += 1
else:
break
if cnt == len(goal):
answer = "Yes"
else:
answer = "No"
return answer
다리를 지나는 트럭
반응형
'코딩테스트 > 코딩 테스트 합격자 되기(파이썬편)' 카테고리의 다른 글
[코딩테스트] 정렬 (0) | 2024.07.06 |
---|---|
[코딩테스트] 해시 (0) | 2024.07.05 |
[코딩테스트] 스택 (0) | 2024.07.05 |
[코딩테스트] 배열 / 연결리스트 (0) | 2024.07.05 |
[코딩테스트] 특징 및 소개 (0) | 2024.07.05 |