본문 바로가기

Algorithm/Baekjoon BOJ

[백준][C++] 10773: 제로

반응형

https://www.acmicpc.net/problem/10773

 

10773번: 제로

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

www.acmicpc.net

 

 

 

 


- 문제

 

  스택을 이용해서 숫자를 저장하거나 빼고 스택에 남은 정수를 합치는 문제다.

 

 


- 해설

 

stack을 이용해서 풀면 된다.

 

 

 

 


- 풀이

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int K, temp, answer = 0;
    stack<int> si;

    cin >> K;
    for (int i = 0; i < K; i++)
    {
        cin >> temp;
        if (temp == 0)
        {
            si.pop();
        }
        else
        {
            si.push(temp);
        }
    }
    while (!si.empty())
    {
        answer += si.top();
        si.pop();
    }
    cout << answer;

    return 0;
}

 

 


- 새롭게 알게 된 점

 

 

반응형

'Algorithm > Baekjoon BOJ' 카테고리의 다른 글

[백준][C++] 1912: 연속합  (0) 2022.11.04
[백준][C++] 9461: 파도반 수열  (0) 2022.11.04
[백준][C++] 10828: 스택  (0) 2022.11.03
[백준][C++] 2563: 색종이  (0) 2022.11.02
[백준][C++] 1904: 01타일  (0) 2022.10.31