- stack.push()
- stack.top() && pop()
- stack.size()
- stack.empty() ? 1 : 0
- stack.top()
[ 입력 ]
- 첫째 줄에 명령의 수 입력 ( N )
- 둘째 줄부터 N 개 줄에 걸쳐 명령이 하나씩 주어짐.
[ 출력 ]
- 출력을 요구하는 명령이 주어질 때마다 결과를 한 줄에 하나씩 출력.
- 출력을 요구하는 명령
정수를 저장하는 stack 하나 생성.
그 후 명령의 번호 ( 1 ~ 5 ) 를 입력받는다.
- 명령의 번호에 따라 수행할 작업을 작성한다.
1) 명령 == 1 이라면
-> stack 에 push 할 정수 하나 입력받아 stack.push(정수)2) 명령 == 2 이라면
-> stack 이 비어있다면 -1 출력, 비어있지 않다면 top() 으로 정수 출력 후 stack.pop() 수행3) 명령 == 3 이라면
-> stack 의 크기 즉, stack.size() 출력4) 명령 == 4 이라면
-> stack.empty() 에 따라 true 라면 1, 아니면 0 출력5) 명령 == 5 이라면
-> stack.empty() 에 따라 true 라면 -1, 아니면 stack.top() 출력
대부분 어떠한 조건이라면 a 출력, 아니라면 b 출력 과 같은 형태의 출력이었기 때문에 삼항연산차로 코드 구현.
c++ 의 std::cin 과 std::cout 으로 구현했을 때 시간초과 발생
-> 이부분을 해결하고자 scanf() 와 printf() 로 구현했더니 문제 해결!