728x90
https://www.acmicpc.net/problem/10773
10773๋ฒ: ์ ๋ก
๋ฌธ์ ๋์ฝ๋ ๊ธฐ์ฅ ์ฌ๋ฏผ์ด๋ ๋์๋ฆฌ ํ์์ ์ค๋นํ๊ธฐ ์ํด์ ์ฅ๋ถ๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ด๋ค. ์ฌํ์ด๋ ์ฌ๋ฏผ์ด๋ฅผ ๋์์ ๋์ ๊ด๋ฆฌํ๋ ์ค์ธ๋ฐ, ์ ์ํ๊ฒ๋ ํญ์ ์ ์ ์๋ ์ฌํ์ด๋ ๋์ ์ค์๋ก ์๋ชป ๋ถ๋ฅด๋ ์ฌ๊ณ ๋ฅผ ์น๊ธฐ ์ผ์ค์๋ค. ์ฌํ์ด๋ ์๋ชป๋ ์๋ฅผ ๋ถ๋ฅผ ๋๋ง๋ค 0์ ์ธ์ณ์, ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ๋ฏผ์ด๊ฐ ์ด ์๋ฅผ ์ง์ฐ๊ฒ ์ํจ๋ค. ์ฌ๋ฏผ์ด๋ ์ด๋ ๊ฒ ๋ชจ๋ ์๋ฅผ ๋ฐ์ ์ ์ ํ ๊ทธ ์์ ํฉ์ ์๊ณ ์ถ์ด ํ๋ค. ์ฌ๋ฏผ์ด๋ฅผ ๋์์ฃผ์! ์ ๋ ฅ ์ฒซ ๋ฒ์งธ ์ค์ ์ ์ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K ≤
www.acmicpc.net
โญ ๋ด ์์ค ์ฝ๋
#include<iostream>
#include <stack>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
stack<int> s;
int num,n,sum=0;
cin >> num;
for (int i = 0; i < num; i++) {
cin >> n;
//0์ด ์
๋ ฅ๋๋ฉด ๊ฐ์ฅ ์ต๊ทผ์ ์
๋ ฅ๋ ๊ฐ์ ์ญ์
if (n == 0) {
s.pop();
}
else {
s.push(n);
}
}
while (!s.empty())
{
sum += s.top();
s.pop();
}
cout << sum;
return 0;
}
๐ ๋ฌธ์ ํ์ด
- 0์ด ์ ๋ ฅ ๋ ๋๋ง๋ค ๊ฐ์ฅ ์ต๊ทผ์ ์ ๋ ฅ ๋ฐ์ ์๋ฅผ ์ง์์ผ ๋๊ธฐ์ FILO ๊ตฌ์กฐ์ธ Stack์ ์ด์ฉ
- 0์ด ์ ๋ ฅ ๋๋ฉด, pop()์ ํตํด ๊ฐ์ฅ ์ต๊ทผ์ ์ ๋ ฅ ๋ฐ์ ์๋ฅผ stack์์ ์ ๊ฑฐ
728x90