코딩테스트/[Baekjoon Online Judge] 문제 풀이

[백준][C++] 10773번 제로 (STL 사용 X, 함수 구현 코드)

권군이 2021. 9. 11. 16:37

#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이전 요소까지의 합을 구하여 출력함.