본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 10773번: 제로 [C++]

문제 출처: www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

1. 코드

#include <iostream>
#include <vector>

using namespace std;

int main(void)
{
	vector <int> arr;

	int t;
	cin >> t;
	while (t--)
	{
		int n;
		cin >> n;

		if (n == 0)
			arr.pop_back();
		else
			arr.push_back(n);
	}
	int sum = 0;
	for (int i = 0; i < arr.size(); i++)
		sum += arr[i];
	cout << sum;
}

(실행)

2. 풀이

vector를 이용하여 0을 입력하면 pop을 해주고 0이 아닌 다른 값들을 입력하면 push하도록 한 뒤 마지막에 vector에 저장된 모든 것들을 더한 뒤 출력했다.