
😎풀이
- 환형 큐 초기화 변수는
deque를 빈 배열로, maxSize를 k로 설정
- 배열 특성을 활용하여
unshift와 push로 앞 뒤 입력
- 배열 특성을 활용하여
shift와 pop으로 앞 뒤 제거
- 빈 배열이나 꽉 찬 배열을 length로 확인
- 인덱스를 통해 맨 앞 혹은 맨 뒷 요소 반환
class MyCircularDeque {
private deque: number[]
private maxSize: number
constructor(k: number) {
this.deque = []
this.maxSize = k
}
insertFront(value: number): boolean {
if(this.isFull()) return false
this.deque.unshift(value)
return true
}
insertLast(value: number): boolean {
if(this.isFull()) return false
this.deque.push(value)
return true
}
deleteFront(): boolean {
if(this.isEmpty()) return false
this.deque.shift()
return true
}
deleteLast(): boolean {
if(this.isEmpty()) return false
this.deque.pop()
return true
}
getFront(): number {
return this.deque[0] ?? -1
}
getRear(): number {
return this.deque.at(-1) ?? -1
}
isEmpty(): boolean {
return this.deque.length === 0
}
isFull(): boolean {
return this.deque.length >= this.maxSize
}
}