๋ฐ์ํ
๋ฌธ์
https://leetcode.com/problems/implement-stack-using-queues/description/
์ค์ง ๋๊ฐ์ queue๋ง์ ์ฌ์ฉํ์ฌ ํ์ ์ ์ถ(LIFO)์ stack์ ๊ตฌํํ์ฌ๋ผ. ๊ตฌํ๋ ์คํ์ ๊ธฐ๋ณธ ์คํ์ ํจ์(push, top, pop, empty)๋ค์ ์ง์ํ์ฌ์ผ ํ๋ค.
MyStack ํด๋์ค๋ฅผ ๊ตฌํํ์ฌ๋ผ.
- void push(int x): ์คํ์ ๋์ x๋ฅผ ๋ฃ๋๋ค.
- int pop(): ์คํ์ ๋ ๊ฐ์ ์ง์ฐ๊ณ , ์ด๋ฅผ ๋ฐํํ๋ค.
- int top(): ์คํ์ ๋ ๊ฐ์ ๋ฐํํ๋ค.
- boolean empty(): ์คํ์ด ๋น์ด์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ์๋๋ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
์ฃผ์
- ์ค์ง ํ์ ํ์ค operation๋ง์ ์ฌ์ฉํ์ฌ๋ผ. ์ด๋ ํ์ ๋์์ ์์๋ฅผ ์ถ๊ฐํ๋ push, ์์์ ์ฝ๊ฑฐ๋ ์ ๊ฑฐํ๋ pop, size์ is empty operation๋ง์ด ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ์ด๋ค.
- ํ๊ฐ ์๋ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ์๋ ํ์ ํ์ค ์์ ๋ง ์ฌ์ฉํ๋ค๋ฉด ๋ฆฌ์คํธ๋ ๋ฑ(์์ชฝ ๋์์ ์ถ๊ฐ/์ ๊ฑฐ ๊ฐ๋ฅํ ํ)๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ฌ๋ผ.
ํ์ด
class MyStack {
Queue<Integer> queue;
public MyStack() {
queue = new ArrayDeque<>();
}
public void push(int x) {
queue.add(x);
for(int i = 0 ; i < queue.size() - 1 ; i ++) {
queue.add(queue.remove());
}
}
public int pop() {
return queue.poll();
}
public int top() {
return queue.peek();
}
public boolean empty() {
return queue.isEmpty();
}
}
๋ฐ์ํ
'๐ ์๊ณ ๋ฆฌ์ฆ > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 735. Asteroid Collision (ํด์, Java ํ์ด) (0) | 2023.07.21 |
---|---|
[LeetCode] 445. add Two Numbers 2 (ํด์, Java ํ์ด) (0) | 2023.07.17 |
[SWEA] 1223๋ฒ ๊ณ์ฐ๊ธฐ2 (Java) (0) | 2021.08.20 |
[๋ฐฑ์ค]1158๋ฒ ์์ธํธ์ค๋ฌธ์ (0) | 2021.08.10 |
[๋ฐฑ์ค]1918๋ฒ ํ์ํ๊ธฐ์ (0) | 2021.08.09 |