반응형

C언어

#include <stdio.h>
 
int stack[100000];
int cnt = 0, sum = 0;
 
void push(int n){
    if(cnt<100000){
        stack[cnt] = n;
        sum += stack[cnt];
        cnt++;
    }
}
void pop(){
    if(cnt!=0){
        cnt--;
        sum -= stack[cnt];
        stack[cnt] = 0;
    }
}
 
int main(){
    int inputNumber;
    scanf("%d"&inputNumber);
    int arr[inputNumber];
    for(int i=0; i<inputNumber; i++){
        scanf("%d"&arr[i]);
        if(arr[i] == 0){
            pop();
        }else{
            push(arr[i]);
        }
    }
    printf("%d\n", sum);
}

C++

#include <iostream>
#include <stack>
 
using namespace std;
 
int main(){
    stack<int> s;
    int inputNumber;
    cin >> inputNumber;
    int arr[inputNumber];
    int sum = 0;
    for(int i=0; i<inputNumber; i++){
        cin >> arr[i];
        if(arr[i] == 0){
            sum -= s.top();
            s.pop();
        }else{
            s.push(arr[i]);
            sum += s.top();
        }
    }
    cout << sum << endl;
    
    return 0;
}
 
반응형

+ Recent posts