<< 문제 >>
https://www.acmicpc.net/problem/10773
문제의 힌트를 보면 Stack을 사용하는 문제라는 것을 알 수 있다.
간단히 Stack을 구현하고 입력에 따라 Sum에 더하고 빼고를 결정하면 쉽게 해결할 수 있다.
<< 코드 >>
#include <iostream>
using namespace std;
struct myStack {
int itemNum = -1;
int item[1000000];
int sum = 0;
};
void stackSum(myStack &s1, int input) {
s1.itemNum++;
s1.item[s1.itemNum] = input;
s1.sum += input;
}
void stackZero(myStack &s1) {
s1.sum -= s1.item[s1.itemNum];
s1.itemNum--;
}
int main() {
myStack s1;
int num;
cin >> num;
int input;
for (int i = 0; i < num; i++) {
cin >> input;
if(input == 0){
stackZero(s1);
}
else{
stackSum(s1, input);
}
}
cout << s1.sum;
}
< 백준 BaekJoon : 4949번 괄호> C++ (0) | 2024.01.22 |
---|---|
< 백준 BaekJoon : 9012번 괄호> C++ (0) | 2024.01.22 |
< 백준 BaekJoon : 28278번 스택 2> C++ (0) | 2024.01.22 |
< 백준 BaekJoon : 13909번 창문 닫기> C++ (0) | 2024.01.22 |
< 백준 BaekJoon : 4134번 다음 소수> C++ (0) | 2024.01.15 |
댓글 영역