😎풀이

  1. 배열을 통해 환형 큐 생성
  2. 배열 크기를 기준으로 비었거나, 꽉 찬 경우를 처리
  3. 꽉 찬 상태가 아니라면, 요소 추가 가능
  4. 비어있는 상태가 아니라면, 요소 제거 가능
  5. 최전방, 최후방 요소를 반환하고 불가한 경우 -1 대신 반환
class MyCircularQueue {
    private queueSize: number
    private queue: number[]
    private frontIdx: number
    constructor(k: number) {
        this.queueSize = k
        this.queue = []
    }

    enQueue(value: number): boolean {
        if(this.isFull()) return false
        this.queue.push(value)
        return true
    }

    deQueue(): boolean {
        if(this.isEmpty()) return false
        this.queue.shift()
        return true
    }

    Front(): number {
        return this.queue[0] ?? -1
    }

    Rear(): number {
        return this.queue[this.queue.length - 1] ?? -1
    }

    isEmpty(): boolean {
        return this.queue.length === 0
    }

    isFull(): boolean {
        return this.queue.length === this.queueSize
    }
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글