-
728x90
2019/11/14 - [알고리즘 공부] - [10828] 백준 알고리즘 : 스택
역시, 코드를 짜면서도 찜찜했었는데, 배열로 처리하는게 아니였다. ㅜㅜ
C++에서는 STL Stack을 사용해야 한다고 한다.
생성
· stack<자료형> 변수명;삽입 및 삭제
· push(값);
· pop();스택 조회
· top(); -> 가장 위에있는 값 반환
· empty(); -> 스택이 비어있는지 확인(true/false)
· size(); -> 스택 사이즈 반환#include <iostream> #include <string> #include <stack> using namespace std; void check(stack<int> &st, string str) { int num = 0; // push할 값 if (str.compare("push") == 0) { cin >> num; st.push(num); } else if (str.compare("pop") == 0) { if (st.empty() == true) cout << -1 << endl; else { cout << st.top() << endl; st.pop(); } } else if (str.compare("size") == 0) { cout << st.size() << endl; } else if (str.compare("empty") == 0) { cout << st.empty() ? 1 : 0; cout << endl; } else if (str.compare("top") == 0) { if (st.empty() == true) cout << -1 << endl; else cout << st.top() << endl; } } int main() { stack<int> st; string str; int n = 0; cin >> n; // 명령 수 입력 for (int i = 0; i < n; i++) { cin >> str; check(st, str); } return 0; }
코드가 막 심하게 차이나고 그런것은 아니지만,
배열로 할 땐, size를 알기 위해서 size값을 지니고 있는 변수를 계속 지니고 다녀야했던 반면에
stack을 include해서 사용하니
훨씬 간편하게 사용가능했다 :)'알고리즘 풀이 > 백준' 카테고리의 다른 글
[10845] 백준 알고리즘 : 큐(C++) (0) 2019.11.20 [1874] 백준 알고리즘 : 스택 수열(C++) (0) 2019.11.20 [9012] 백준 알고리즘 : 괄호(C++) (0) 2019.11.20 [9093] 백준 알고리즘 : 단어 뒤집기(C++) (0) 2019.11.19 [10828] 백준 알고리즘 : 스택(C++) - 공부전 (0) 2019.11.14 댓글