Dolphins의 HelloWorld
[백준]Baekjoon10828(스택) 본문
이 문제는 순수하게 스택을 구현하는 문제이다.
이 블로그의 알고리즘 개념에 있는 것과 같이 직접 스택을 구현할 수도 있으나
빠른 시간안에 문제를 풀고자 할 때는 c++에서 제공하는 라이브러리를 이용하는것이 더
효율적이다.
https://en.cppreference.com/w/cpp/container/stack
위의 사이트에서 stack 라이브러리가 제공하는 함수들과 정보들을 볼 수 있다.
아래의 코드는 stack 라이브러리를 활용한 코드이다.
#include <iostream> #include <stack> #include <string> using namespace std; int main() { int N; // 명령의 수 string s; //명령어를 받는 변수 stack<int> stack; //스택 선언 cin >> N; int num; //스택에 push할 수를 받는 변수 while (N--) { cin >> s; //명령어 받기 if (s == "push") { //명령어가 push인 경우 cin >> num; stack.push(num); } else if (s == "pop") { if (stack.empty()) { //비어있는 경우에 -1 출력 cout << -1 << '\n'; continue; } cout << stack.top() << '\n'; //맨위의 정수를 출력하고 stack.pop(); //맨 위의 수를 제거 } else if (s == "size") { //명령어가 size인 경우 cout << stack.size() << '\n'; } else if (s == "empty") { //명령어가 empty인 경우 stack.empty() ? cout << 1 << '\n' : cout << 0 << '\n'; } else if (s == "top") { //명령어가 top인경우 stack.empty() ? cout << -1 << '\n' : cout << stack.top() << '\n'; } } }
'Algorithm > baekjoon문제풀이' 카테고리의 다른 글
[백준]Baekjoon1966(Queue) (0) | 2018.06.28 |
---|---|
[백준]Baekjoon10845(Queue) (0) | 2018.06.26 |
[백준]Baekjoon10823(String 활용) (0) | 2018.06.25 |
[백준]Baekjoon10820(String 활용) (0) | 2018.06.24 |
[백준]Baekjoon1152(String 활용) (0) | 2018.06.24 |
Comments