https://www.acmicpc.net/problem/10773
제출 코드
#include <iostream>
#include <stack>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int k, num, sum = 0;
stack<int> s;
cin >> k;
while (k--)
{
cin >> num;
if (num == 0)
s.pop();
else
s.push(num);
}
while (!s.empty())
{
sum += s.top();
s.pop();
}
cout << sum;
}
stack을 이용해서 0이 아닌 경우 차례로 정수를 넣고, 0인 경우 pop을 시켜서 가장 최근에 넣은 수를 지우는 방식이다
스택에 수를 다 넣은 뒤에는 스택이 비어있을 때까지 while loop로 sum에 정수들을 더해주었다
'Programing > 백준, 프로그래머스(C++)' 카테고리의 다른 글
[C++][백준 1929] 소수 구하기 (0) | 2025.01.10 |
---|---|
[C++][백준 18110] solved.ac (0) | 2025.01.10 |
[C++][백준 2839] 설탕 배달 (0) | 2025.01.09 |
[C++][백준 7568] 덩치 (0) | 2025.01.09 |
[C++][백준 1676] 팩토리얼 0의 개수 (0) | 2025.01.09 |