반응형
해당 문제는 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();
}
반응형
'프로그래밍-기본기 > 알고리즘(문제풀이)' 카테고리의 다른 글
[LeetCode] 14. Longest Common Prefix (0) | 2024.03.27 |
---|---|
(백준)11651 좌표 정렬하기 2 c++ (0) | 2023.09.25 |
(백준) 2839 설탕 배달 c++ 그리디 알고리즘 (0) | 2023.09.19 |
(백준) 2775 부녀회장이 될테야 C++ (0) | 2023.09.18 |
(백준) 2108 통계학 C++ (0) | 2023.09.14 |