컴굥일지
[BOJ/백준 10828][C++] 스택 본문
반응형
문제
https://www.acmicpc.net/problem/10828
문제 내용
Stack을 사용할 때 쓰는 함수들을 쓰면 된다.
Stack STL을 사용할 줄 안다면 쉽게 풀 수 있다.
문제 풀이
5가지 명령 중에 명령 그대로 함수를 쓰면 안 되는 것이 2가지 있다.
바로 pop()과 top()이다.
이 두 함수는 사용하기 전에 stack이 비어있는지 반드시 확인해야 한다.
코드
#include <iostream>
#include <stack>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
//입력
int n,tmp;
cin >> n;
stack<int> ss;
string str;
//문제 해결
for (int i = 0; i < n; i++) {
cin >> str;
if (str == "push") {
cin >> tmp;
ss.push(tmp);
}
else if (str == "pop") {
if (ss.empty()) cout << -1 << '\n';
else {
cout << ss.top() << '\n';
ss.pop();
}
}
else if (str == "size") {
cout << ss.size() << '\n';
}
else if (str == "empty") {
if (ss.empty()) cout << 1 << '\n';
else cout << 0 << '\n';
}
else if (str == "top") {
if (ss.empty()) cout << -1 << '\n';
else {
cout << ss.top() << '\n';
}
}
}
}
문제 코드 설명
stack<int> ss; 로 이름이 ss인 스택을 선언했다.
1) push()
ss.push(element)를 하면 element가 스택에 저장된다.
2) pop()
ss.pop()을 하면 스택에 저장된 가장 마지막 원소가 제거된다.
3) size()
ss.size()를 하면 스택에 몇 개의 원소가 있는지 반환된다.
4) empty()
ss.empty()를 하면 스택이 비어있는지의 여부가 반환된다.
5) top()
ss.top()을 하면 스택에 저장된 가장 마지막 원소가 반환된다.
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 1181][C++] 단어 정렬 (0) | 2022.04.10 |
---|---|
[BOJ/백준 2164][C++] 카드2 (0) | 2022.04.09 |
[BOJ/백준 14606][C++] 피자 (Small) (0) | 2022.04.03 |
[BOJ/백준 9658][C++] 돌 게임 4 (0) | 2022.04.02 |
[BOJ/백준 2294][C++] 동전 2 (0) | 2022.03.30 |
Comments