์ค๋์ ๋ฌธ์ >> Implement Stack using Queues - LeetCode
[ ์๊ฐ ํ๋ฆ ]
์ด์ ๋ ์คํ์ผ๋ก ํ๋ฅผ ๊ตฌํํ๊ณ , ์ค๋์ ํ๋ก ์คํ์ ๊ตฌํํ๋๊ฑฐ๋
๋จ์ํ ํ๋ ์คํ๋ง ๋ฐ๊ฟ์น๊ธฐ ํ๋ฉด ๋๋๊ฒ ์๋๊น ์ถ์๋ค
[ Java ] - ์ค๋ต
class MyStack {
private Queue<Integer> oldQueue;
private Queue<Integer> newQueue;
public MyStack() {
oldQueue = new LinkedList<>();
newQueue = new LinkedList<>();
}
public void push(int x) {
oldQueue.offer(x);
}
public int pop() {
if(newQueue.isEmpty()){
while(!oldQueue.isEmpty()){
newQueue.offer(oldQueue.poll());
}
}
return newQueue.poll();
}
public int top() {
if(newQueue.isEmpty()){
while(!oldQueue.isEmpty()){
newQueue.offer(oldQueue.poll());
}
}
return newQueue.peek();
}
public boolean empty() {
return oldQueue.isEmpty() && newQueue.isEmpty();
}
}
์ฒ์ ๋ด ์๊ฐ๊ณผ๋ ๋ค๋ฅด๊ฒ ํ๋ ธ๋ค..!
๊ฒฐ๊ตญ ํด๊ฒฐํ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
[ Java ]
class MyStack {
private Queue<Integer> oldQueue;
private Queue<Integer> newQueue;
public MyStack() {
oldQueue = new LinkedList<>();
newQueue = new LinkedList<>();
}
public void push(int x) {
oldQueue.offer(x);
}
public int pop() {
while(oldQueue.size()>1){
newQueue.offer(oldQueue.poll());
}
int topElement = oldQueue.poll();
Queue<Integer> temp = oldQueue;
oldQueue = newQueue;
newQueue = temp;
return topElement;
}
public int top() {
while(oldQueue.size()>1){
newQueue.offer(oldQueue.poll());
}
int topElement = oldQueue.peek();
newQueue.offer(oldQueue.poll());
Queue<Integer> temp = oldQueue;
oldQueue = newQueue;
newQueue = temp;
return topElement;
}
public boolean empty() {
return oldQueue.isEmpty();
}
}
'TIL๐ฅ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 7 ์ข์ ๋จ์ด (0) | 2025.04.08 |
---|---|
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 6 Climbing Stairs (0) | 2025.04.07 |
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 4 Implement Queue using Stacks (0) | 2025.04.03 |
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 3 !!์ด์ฝ๋ฆฟ ์ค๋ ์ฃผ์!! (0) | 2025.04.02 |
[ํญํด99ํด๋ฝ] Java ๋น๊ธฐ๋_Day 2 ๋ฌธ์์ด ๋ถ์ (0) | 2025.04.01 |
๋๊ธ