본문 바로가기
알고리즘/백준

[백준/C,C++] 10773번: 제로

by 이민훈 2021. 3. 1.

www.acmicpc.net/problem/10773

 

10773번: 제로

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

www.acmicpc.net

C++에서 제공되는 vector로 아주 쉽게 풀 수 있는 문제입니다.

#include<iostream>
#include<vector>

using namespace std;

int main(void)
{
    int k; cin >> k;
    vector<int> stack;

    for (int i = 0; i < k; i++) {
        int temp; cin >> temp;
        if (temp == 0) stack.pop_back();
        else stack.push_back(temp);
    }

    int sum = 0;
    for (vector<int>::iterator it = stack.begin(); it < stack.end(); it++) {
        sum += *it;
    }

    cout << sum << endl;

    return 0;
}

k번만큼 정수를 입력받아 0이라면 pop을, 아니라면 push를 해주고 벡터를 돌며 모든 값을 더해주면 되는 문제입니다.

'알고리즘 > 백준' 카테고리의 다른 글

[백준/C,C++] 17298번: 오큰수  (0) 2021.03.03
[백준/C,C++] 1874번: 스택 수열  (0) 2021.03.03
[백준/C,C++] 4949번: 균형잡힌 세상  (0) 2021.03.03
[백준/C,C++] 9012번: 괄호  (0) 2021.03.02
[백준/C,C++] 10828번: 스택  (0) 2021.03.01

댓글