프로그래밍-기본기/알고리즘(문제풀이)
(백준)10773 제로 c++
독학백수
2023. 9. 25. 08:25
반응형
해당 문제는 Stack으로 풀면 간단하다.
0이 들어올 때, pop을 해주면 된다.
int N;
stack<int> s;
void Intput()
{
cin >> N;
for (int i = 0; i < N; i++)
{
int data;
cin >> data;
if
(data == 0) s.pop();
else
s.push(data);
}
}
이후 스택에 쌓인 수 만큼 합산 해주고 출력해주면 된다
void Solution()
{
int sum = 0;
while (!s.empty())
{
sum += s.top();
s.pop();
}
cout << sum;
}
전체소스코드
#include <iostream>
#include <algorithm>
#include <map>
#include <vector>
#include <cmath>
#include <string>
#include <queue>
#include <stack>
using namespace std;
int N;
stack<int> s;
void Intput()
{
cin >> N;
for (int i = 0; i < N; i++)
{
int data;
cin >> data;
if
(data == 0) s.pop();
else
s.push(data);
}
}
void Solution()
{
int sum = 0;
while (!s.empty())
{
sum += s.top();
s.pop();
}
cout << sum;
}
void Solved() {
Intput();
Solution();
}
int main() {
Solved();
}
반응형