#10773번 제로
코드 설명
가장 마지막에 들어온 수를 지워야하기 때문에 '스택'으로 코드를 작성함.
STL을 사용하지 않고 stack배열을 선언한 후 push(), pop()을 만들어 풀어봄.
- push()
void push(int n) {
stack[E] = n;
E++;
return;
}
E는 요소가 들어가야할 곳을 뜻하고 초기값은 0임.
n을 입력받으면 stack의 E번째 자리에 넣어주고 E를 1 증가시킴.
- pop()
void pop(int n) {
E--;
return;
}
E를 1 감소시켜주어 push()했을 때 새로운 숫자가 들어오게 함.
코드
#include <iostream>
using namespace std;
int k,n;
int stack[100001] = { 0, };
int E= 0;
void push(int n) {
stack[E] = n;
E++;
return;
}
void pop(int n) {
E--;
return;
}
int main() {
cin >> k;
for (int i = 0; i < k; i++) {
cin >> n;
if (n != 0) {
push(n);
}
else {
pop(n);
}
}
int data=0;
for (int i = 0; i < E; i++) {
data += stack[i];
}
cout << data << "\n";
}
- stack 배열의 0번째 요소부터 E이전 요소까지의 합을 구하여 출력함.