์ค๋์ ๋ฌธ์ >> https://leetcode.com/problems/implement-queue-using-stacks/description/
[ ์๊ฐ ํ๋ฆ ]
์คํ์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ํ์ชฝ์์๋ง ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์คํ์ผ๋ก ํ๋ฅผ ๊ตฌํํ๋ ค๋ฉด 2๊ฐ์ ์คํ์ด ํ์ํ๋ค.
๋ค์ด์ค๋๋๋ก ์์ ๋์ ์คํ๊ณผ ์ด๋ฅผ ์ญ๊ตฌ์กฐ๋ก ๋ด์ ์คํ!
[ Java ]
import java.util.Stack;
class MyQueue {
Stack<Integer> oldStack;
Stack<Integer> newStack;
public MyQueue() {
oldStack = new Stack<>();
newStack = new Stack<>();
}
public void push(int x) {
oldStack.push(x);
}
public int pop() {
if(newStack.isEmpty()){
while(!oldStack.isEmpty()){
newStack.push(oldStack.pop());
}
}
return (int)newStack.pop();
}
public int peek() {
if(newStack.isEmpty()){
while(!oldStack.isEmpty()){
newStack.push(oldStack.pop());
}
}
return (int)newStack.peek();
}
public boolean empty() {
return oldStack.isEmpty() && newStack.isEmpty();
}
}
*์ค๋ ๋ฐฐ์ด ์คํ ์ฉ์ด(์ฐ์ฐ)
- top: ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ผ์ด๋๋ ์์น๋ฅผ ๋ปํ๋ค!
- push: top ์์น์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ
- pop: top ์์น์ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ ํ์ธํ๋ ์ฐ์ฐ
- peek: top ์์น์ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋จ์ ํ์ธํ๋ ์ฐ์ฐ
*์ฐธ๊ณ ) ํ ์ฉ์ด
- rear: ํ์์ ๊ฐ์ฅ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ญ
- front: ํ์์ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ญ
- add: rear๋ถ๋ถ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ
- poll: front๋ถ๋ถ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ ํ์ธํ๋ ์ฐ์ฐ
- peek: ํ์ ๋งจ ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ
'TIL๐ฅ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 6 Climbing Stairs (0) | 2025.04.07 |
---|---|
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 5 Implement Stack using Queues (0) | 2025.04.04 |
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 3 !!์ด์ฝ๋ฆฟ ์ค๋ ์ฃผ์!! (0) | 2025.04.02 |
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 2 ๋ฌธ์์ด ๋ถ์ (0) | 2025.04.01 |
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 1 ๋ช ๋ น ํ๋กฌํํธ, ํฐ๋ฆฐ๋๋กฌ (0) | 2025.03.31 |
๋๊ธ