๐Ÿฅž BE
home

641_Design Circular Deque

๋‹ด๋‹น์ž
์™„๋ฃŒ ์—ฌ๋ถ€
Solved
์š”์•ฝ
๋‚ ์งœ
2024/07/12
ํƒœ๊ทธ
์ž๋ฃŒ๊ตฌ์กฐ
๋‚œ์ด๋„
Medium
์ถœ์ฒ˜
LeetCode

์ฝ”๋“œ

class MyCircularDeque { private int[] data; private int front, rear, size, count; // Deque ์ดˆ๊ธฐํ™” public MyCircularDeque(int k) { data = new int[k]; front = 0; rear = 0; size = k; count = 0; } // Deque์˜ ์•ž์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ public boolean insertFront(int value) { if (isFull()) { return false; } front = (front - 1 + size) % size; data[front] = value; count++; if (count == 1) { rear = front; } return true; } // Deque์˜ ๋’ค์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ public boolean insertLast(int value) { if (isFull()) { return false; } data[rear] = value; rear = (rear + 1) % size; count++; if (count == 1) { front = rear; } return true; } // Deque์˜ ์•ž์ชฝ ์š”์†Œ๋ฅผ ์ œ๊ฑฐ public boolean deleteFront() { if (isEmpty()) { return false; } front = (front + 1) % size; count--; return true; } // Deque์˜ ๋’ค์ชฝ ์š”์†Œ๋ฅผ ์ œ๊ฑฐ public boolean deleteLast() { if (isEmpty()) { return false; } rear = (rear - 1 + size) % size; count--; return true; } // Deque์˜ ์•ž์ชฝ ์š”์†Œ ๊ฐ€์ ธ์˜ด public int getFront() { if (isEmpty()) { return -1; } return data[front]; } // Deque์˜ ๋’ค์ชฝ ์š”์†Œ ๊ฐ€์ ธ์˜ด public int getRear() { if (isEmpty()) { return -1; } return data[(rear - 1 + size) % size]; } // Deque๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ public boolean isEmpty() { return count == 0; } // Deque๊ฐ€ ๊ฐ€๋“ ์ฐผ๋Š”์ง€ ํ™•์ธ public boolean isFull() { return count == size; } }
Java
๋ณต์‚ฌ
์›ํ˜• ํ(Circular Queue)๋Š” ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ์„œ, FIFO(First In First Out) ์›์น™์— ๋”ฐ๋ผ ๋™์ž‘ํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰ ์œ„์น˜๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์œ„์น˜์™€ ์—ฐ๊ฒฐ๋˜์–ด ์›ํ˜•์„ ์ด๋ฃฌ๋‹ค.
์›ํ˜• ํ๋Š” ํ์˜ ์ฒ˜์Œ ๋ถ€๋ถ„์˜ ๊ณต๊ฐ„์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด