๐ค๋ฌธ์ ์ดํด
๊ดํธ์ ์ง์ ๋ง์ถ๊ธฐ ์ํด ์ต์ํ์ผ๋ก ๋ฐ๊พธ๋ ๊ดํธ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
๐ฅํ์ด๐ฅ
์ง์ด ๋ง๋ ๊ดํธ๋ stack์ ์ด์ฉํด ์ฌ๋ ๊ดํธ๋ฉด ๋ฃ๊ณ ๋ซ๋ ๊ดํธ๋ฉด stack์ top์ด ์ฌ๋ ๊ดํธ๋ฉด pop์ ํด์ฃผ๊ณ , ๋ซ๋ ๊ดํธ๋ฉด ๊ทธ๋ฅ pushํด์ฃผ๋ ์์ผ๋ก ์ฒ๋ฆฌํด์ฃผ์๋ค.
๋ฐ๋ก ์ง์ ์ง์ด์ฃผ๋ ๋์ค์ ์ง์ ์ง์ด์ฃผ๋ ๋ฐ๊พธ๋ ๊ดํธ์ ๊ฐ์๋ ๋ณํ์ง ์๋๋ค.
์๋ฅผ ๋ค์ด ์์ ๋ ์์ }{{{์ ๊ฒฝ์ฐ ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ, ๋ค๋ฒ์งธ๋ฅผ ๋ฐ๊ฟ {}{}์ ๋ง๋๋ ๊ฒ๊ณผ
์ฒซ๋ฒ์งธ ์ธ๋ฒ์งธ ๋ค๋ฒ์งธ๋ฅผ ๋ฐ๊ฟ {{}}์ ๋ง๋๋ ๊ฒฝ์ฐ์์ ๋ฐ๊พธ๋ ๊ดํธ์ ๊ฐ์๊ฐ ๋์ผํจ์ ์ ์ ์๋ค.
๋ฐ๋ผ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ์ฒ์ ๊ดํธ๋ ๋ฌด์กฐ๊ฑด ์ฌ๋ ๊ดํธ๋ก ๋ง๋ค์ด์ฃผ๊ณ , ๋ค์ ๊ดํธ๋ ๋ซ๋ ๊ดํธ๋ก ๋ง๋ค์ด ์ฃผ๋ฉด์ ๋ฌธ์ 2๊ฐ์ฉ ์ฒ๋ฆฌํด์ฃผ์๋ค.
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
string s;
int main() {
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
int idx = 1;
while (true) {
cin >> s;
stack<char> st;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '{') {
st.push('{');
} else if (s[i] == '}') {
if (!st.empty() && st.top() == '{') {
st.pop();
} else {
st.push('}');
}
} else {
return 0;
}
}
vector<char> v;
while (!st.empty()) {
v.push_back(st.top());
st.pop();
}
int ans = 0;
for (int i = v.size() - 1; i >= 0; i--) {
if (v[i] == '}') {
ans++;
i--;
if (v[i] == '{')
ans++;
} else if (v[i] == '{') {
i--;
if (v[i] == '{')
ans++;
}
}
cout << idx << ". " << ans << "\n";
idx++;
}
}
'๋ฐฑ์ค > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 20040๋ฒ ์ฌ์ดํด ๊ฒ์ (0) | 2022.11.03 |
---|---|
[๋ฐฑ์ค/C++] 17404๋ฒ RGB๊ฑฐ๋ฆฌ 2 (0) | 2022.11.02 |
[๋ฐฑ์ค/C++] 21610๋ฒ ๋ง๋ฒ์ฌ ์์ด์ ๋น๋ฐ๋ผ๊ธฐ (0) | 2022.10.06 |
[๋ฐฑ์ค/C++] 24524๋ฒ ์๋ฆ๋ค์ด ๋ฌธ์์ด (0) | 2022.10.05 |
[๋ฐฑ์ค/C++] 9663๋ฒ N-Queen (0) | 2022.08.16 |