제로(10773)

NJW·2021년 8월 28일
0

코테

목록 보기
92/170

들어가는 말

스택을 이용해서 푸는 문제이다. 만일 값으로 0이 들어오면 제일 마지막 수(아까 전에 들어온 수)를 제거해 준다. 그렇게 총 n번 반복한 후에 스택에 남은 값들을 전부 더해준다.

코드 설명

만일 값이 0이 아니면 값을 넣어주고 0이면 아까 전에 넣었던 수를 빼준다. 마지막으로 벡터에 남은 수를 전부 더해주면 된다. 스택을 사용할까 싶었지만, 그냥 벡터를 사용했다.

코드

#include <iostream>
#include<vector>

using namespace std;

int main() {
	int k;
	vector<int> s;
	int sum = 0;

	cin >> k;

	for (int i = 0; i < k; i++) {
		int n;
		cin >> n;

		if (n != 0) {
			s.push_back(n);
		}
		else {
			s.pop_back();
		}
	}

	for (int i = 0; i < s.size(); i++) {
		sum = sum + s[i];
	}

	cout << sum << endl;

	return 0;
}
profile
https://jiwonna52.tistory.com/

0개의 댓글