반응형
https://leetcode.com/problems/implement-queue-using-stacks/description/
queue를 stack 2개로 푼 문제였습니다.
📕 풀이방법
📔 풀이과정
stack을 queue처럼 사용하고 싶다면 pop할 때 한쪽의 원소 한 개를 제외한 나머지 모든 원소를 다른 stack에 넣고 파악해야합니다. 파악한 뒤에는 특정 동작을 하고 다시 원복해줍니다. peek(), pop()에 대해 해당 연산을 수행해줍니다.
📕 Code
📔 C++
class MyQueue {
stack <int> st1, st2;
public:
void push(int x) {
st1.push(x);
}
int pop() {
while(st1.size() > 1) {
st2.push(st1.top());
st1.pop();
}
int t = st1.top();
st1.pop();
while(st2.size()) {
st1.push(st2.top());
st2.pop();
}
return t;
}
int peek() {
while(st1.size() > 1) {
st2.push(st1.top());
st1.pop();
}
int t = st1.top();
while(st2.size()) {
st1.push(st2.top());
st2.pop();
}
return t;
}
bool empty() {
return st1.empty();
}
};
/**
* Your MyQueue object will be instantiated and called as such:
* MyQueue* obj = new MyQueue();
* obj->push(x);
* int param_2 = obj->pop();
* int param_3 = obj->peek();
* bool param_4 = obj->empty();
*/
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 783. Minimum Distance Between BST Nodes (0) | 2023.02.17 |
---|---|
(C++) - LeetCode (easy) 234. Palindrome Linked List (0) | 2023.01.19 |
(C++) - LeetCode (easy) 226. Invert Binary Tree (0) | 2023.01.11 |
(C++) - LeetCode (easy) 206. Reverse Linked List (0) | 2023.01.06 |
(C++) - LeetCode (easy) 203. Remove Linked List Elements (0) | 2023.01.02 |