25. 원형 큐 디자인
https://leetcode.com/problems/design-circular-queue/
📌문제
원형 큐를 디자인하라
- 예제1
📝입력
["MyCircularQueue", "enQueue", "enQueue", "enQueue", "enQueue", "Rear", "isFull", "deQueue", "enQueue", "Rear"]
[[3], [1], [2], [3], [4], [], [], [], [4], []]
💻출력
[null, true, true, true, false, 3, true, true, true, 4]
📌풀이
4ms, 43.3mb
class MyCircularQueue {
int maxSize, head = 0, tail = -1;
int[] data;
public MyCircularQueue(int k) {
data = new int[k];
maxSize = k;
}
public boolean enQueue(int val) {
if (isFull()) return false;
tail = (tail + 1) % maxSize;
data[tail] = val;
return true;
}
public boolean deQueue() {
if (isEmpty()) return false;
if (head == tail) {
head = 0;
tail = -1;
} else head = (head + 1) % maxSize;
return true;
}
public int Front() {
return isEmpty() ? -1 : data[head];
}
public int Rear() {
return isEmpty() ? -1 : data[tail];
}
public boolean isEmpty() {
return tail == -1;
}
public boolean isFull() {
return !isEmpty() && (tail + 1) % maxSize == head;
}
}
'Algorithm > PTUStudy' 카테고리의 다른 글
10주차. 데크, 우선순위(k개 정렬 리스트 병합) (0) | 2023.03.30 |
---|---|
10주차. 데크, 우선순위 큐(원형 데크 디자인) (0) | 2023.03.30 |
9주차. 스택,큐(스택을 이용한 큐 구현) (0) | 2023.03.30 |
9주차. 스택,큐 (큐를 이용한 스택구현) (0) | 2023.03.30 |
8주차. 단어 뒤집기 2 (0) | 2023.03.30 |