-
[๋ฐฑ์ค(BOJ) 10773๋ฒ] ์ ๋ก (C++)PS(Problem Solving)/C++ 2022. 1. 16. 22:30๋ฐ์ํ
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/10773
๋ฌธ์ ์ ๋ณด
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์ ์ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ 100,000)
์ดํ K๊ฐ์ ์ค์ ์ ์๊ฐ 1๊ฐ์ฉ ์ฃผ์ด์ง๋ค. ์ ์๋ 0์์ 1,000,000 ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ ์๊ฐ "0" ์ผ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ด ์๋ฅผ ์ง์ฐ๊ณ , ์๋ ๊ฒฝ์ฐ ํด๋น ์๋ฅผ ์ด๋ค.
์ ์๊ฐ "0"์ผ ๊ฒฝ์ฐ์ ์ง์ธ ์ ์๋ ์๊ฐ ์์์ ๋ณด์ฅํ ์ ์๋ค.
์ถ๋ ฅ
์ฌ๋ฏผ์ด๊ฐ ์ต์ข ์ ์ผ๋ก ์ ์ด ๋ธ ์์ ํฉ์ ์ถ๋ ฅํ๋ค. ์ต์ข ์ ์ผ๋ก ์ ์ด๋ธ ์์ ํฉ์ 231-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
ํ์ด
์ ์๊ฐ 0์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ต๊ทผ์ ์ด ์๋ฅผ ์ง์์ผ ํ๋ ๋ฌธ์ ๋ค. ์คํ์ LIFO ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ์คํ์ ์ด์ฉํ๋ฉด ํด๊ฒฐ ํ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์์ค ์ฝ๋
#include <bits/stdc++.h> using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int k; cin >> k; stack<int> S; int sum = 0; while (k--) { int num; cin >> num; if (num == 0) { sum -= S.top(); S.pop(); } else { sum += num; S.push(num); } } cout << sum; return 0; }
๋ฐ์ํ