Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자연어처리 #glove #글로브 #glove vector #벡터 임베딩
- 딥러닝 #모멘텀 #momentum #핸즈온머신러닝 #하이퍼파라미터튜닝
- 딥러닝 #머신러닝 #AdaGrad
- 자연어처리 #question-answering #dynamic memory #attention
- PCA #주성분 분석 #머신러닝 #선형대수 #sklearn
- 파이썬 #알고리즘 #코딩인터뷰 #리트코드 #DFS
- char-CNN #자연어처리 # 단어임베딩 #wordembedding #LSTM
- BERT #자연어처리
- cyclegan #GAN
- 자연어처리 #기계번역 #attention #global attention # local attention
- 배치 정규화 #batch normalization # 딥러닝 #머신러닝
- 파이썬 #알고리즘 #데크 #원형큐 #코딩테스트
- 특이값분해 # SVD #머신러닝 #차원축소 # 인공지능
- 3d cad #인공지능 #resnet
Archives
- Today
- Total
누누와데이터
파이썬 알고리즘 인터뷰 26번 문제 : 원형데크디자인 본문
문제설명
이문제는 원형 데크를 디자인하는 문제이다. 데크는 파이썬의 모듈로서 양쪽 끝을 모두 추출할 수 있는 큐이다. 파이썬의 데크의 기능을 하는 클래스를 이중연결리스트로 구현해보자
class MyCircularDeque:
def __init__(self, k: int):
self.head, self.tail = ListNode(None), ListNode(None)
self.k, self.len = k, 0 #k는 원형데크의 최대길이, len은 원형데크의 현재 길이이다.
self.head.right, self.tail.left = self.tail, self.head
# 이중 연결리스트에 신규 노드 삽입
def _add(self, node:ListNode, new:ListNode):
n = node.right
node.right = new
new.left , new.right = node, n
n.left = new
#이중 연결리스트에 노드 삭제
def _del (self, node:ListNode) :
n = node.right.right
node.right = n
n.left = node
def insertFront(self, value: int) -> bool:
if self.len == self.k :
return False
self.len +=1
self._add(self.head, ListNode(value))
return True
def insertLast(self, value: int) -> bool:
if self.len == self.k :
return False
self.len += 1
self._add(self.tail.left, ListNode(value))
return True
def deleteFront(self) -> bool:
if self.len == 0 :
return False
self.len -=1
self._del(self.head)
return True
def deleteLast(self) -> bool:
if self.len == 0 :
return False
self.len -= 1
self._del(self.tail.left.left)
return True
def getFront(self) -> int:
if self.len :
return self.head.right.val
else :
return -1
def getRear(self) -> int:
if self.len :
return self.tail.left.val
else :
return -1
def isEmpty(self) -> bool:
return self.len == 0
def isFull(self) -> bool:
return self.len == self.k
출처 : 파이썬 알고리즘 인터뷰 (95가지 알고리즘 문제풀이로 완성하는 코딩테스트, 박상길 지음)
'자료구조, 알고리즘' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 32번 문제 : 섬의 개수 (0) | 2021.02.05 |
---|
Comments