백준 10828번 (스택, C++, Stack) [BAEKJOON]

스택

https://www.acmicpc.net/problem/10828

시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초256 MB188383659904817737.253%

문제

정수를 저장하는 스택을 구현한 다음,

입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 다섯 가지이다.

push X: 정수 X를 스택에 넣는 연산이다.

pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.

만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

size: 스택에 들어있는 정수의 개수를 출력한다.

empty: 스택이 비어있으면 1, 아니면 0을 출력한다.

top: 스택의 가장 위에 있는 정수를 출력한다. 

만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 

둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다.

주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다.

문제에 나와있지 않은 명령이 주어지는 경우는 없다.

출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

예제 입력 1

14
push 1
push 2
top
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
top

예제 출력 1

2
2
0
2
1
-1
0
1
-1
0
3

예제 입력 2

7
pop
top
push 123
top
pop
top
pop

예제 출력 2

-1
-1
123
123
-1
-1

출처

알고리즘 분류


Stack의 기능을 알려주는 문제 10845번 문제를 재활용 했다.

통과된 코드

#include <iostream>
#include <stack>

using namespace std;

/*
* 
push X: 정수 X를 스택에 넣는 연산이다.

pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 
만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

size: 스택에 들어있는 정수의 개수를 출력한다.

empty: 스택이 비어있으면 1, 아니면 0을 출력한다.

top: 스택의 가장 위에 있는 정수를 출력한다. 
만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

*/

int N, temp;

string str;
stack<int> myS;

void myStack(string str)
{
	if (str == "push") {
		cin >> temp;
		myS.push(temp);
	}
	else if (str == "pop") {
		if (myS.empty()) {
			cout << -1 << "\n";
		}
		else {
			temp = myS.top();
			myS.pop();
			cout << temp << "\n";
		}
	}
	else if (str == "size") {
		cout << myS.size() << "\n";
	}
	else if (str == "empty") {
		if (myS.empty()) {
			cout << 1 << "\n";
		}
		else {
			cout << 0 << "\n";
		}
	}
	else if (str == "top") {
		if (myS.empty()) {
			cout << -1 << "\n";
		}
		else {
			cout << myS.top() << "\n";
		}
	}
}

int main()
{
	ios_base::sync_with_stdio(false); // scanf와 동기화를 비활성화
	// cin.tie(null); 코드는 cin과 cout의 묶음을 풀어줍니다.
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> N;
	while (N-- > 0) {
		cin >> str;
		myStack(str);
	}

	return 0;
}

“백준 10828번 (스택, C++, Stack) [BAEKJOON]”에 대한 2개의 생각

  1. Howdy! Do you know if they make any plugins to assist with
    Search Engine Optimization? I’m trying to get my blog to
    rank for some targeted keywords but I’m not seeing very good gains.
    If you know of any please share. Thanks! I saw similar
    text here: Wool product

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤