Home BOJ - 10773 - 제로
Post
Cancel

BOJ - 10773 - 제로

BOJ - 10773 - 제로

문제


10773번: 제로

https://user-images.githubusercontent.com/71277820/162562027-d4a19b02-f505-4b26-8d26-d5c32593f3b4.png

문제 개념


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

구현


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>

using namespace std;
// 0이 들어오면 최근에 입력한 수를 지운다. 
// answer은 스택에 쌇인 수를 모두 더한 것이다. 

int main()
{
    vector<int> VectorStack;
    int num; 
    int answer = 0;
    cin >> num;
    for(int i=0; i < num; i++)
    {
        int temp;
        cin >> temp;
        if(temp == 0)
            VectorStack.pop_back();
        else 
            VectorStack.push_back(temp);
    }
    for(auto el : VectorStack)
        answer += el;
    cout << answer << endl;
    return 0;
}

SOL


  • 입력을 받을 때 0인지 구분
  • 조건에 따라 push & pop

Reference & 다른 PS 모음집


https://github.com/ggh-png/PS

This post is licensed under CC BY 4.0 by the author.