-
[C++] μ€νμ νμ©(μμμ κ΄νΈ κ²μ¬)Algorithm & Data Structure 2022. 1. 20. 22:50λ°μν
λ€μ΄κ°λ©°
μ΄λ²μλ μ€νμ νμ©νμ¬ μμμ κ΄νΈ μμ κ²μ¬νλ μκ³ λ¦¬μ¦μ λν΄ μμ보μ!
μμμ κ΄νΈ μ μμ
- ( { { ) } } -> μ¬λ°λ₯΄μ§ μμ μ
- ( ( ) ) -> μ¬λ°λ₯Έ μ
μμμ κ΄νΈ μ ν΄κ²° μκ³ λ¦¬μ¦
- μ¬λ κ΄νΈκ° λμ€λ©΄ μ€νμ μΆκ°νλ€.
- λ«λ κ΄νΈκ° λμμ λ μλμ 3κ°μ§ λ°©λ²μΌλ‘ μ²λ¦¬νλ€.
- μ€νμ΄ λΉμ΄μμΌλ©΄ μ¬λ°λ₯΄μ§ μμ κ΄νΈ μμ΄λ€.
- μ€νμ topκ³Ό μ§μ΄ λ§μ§ μλ κ΄νΈλΌλ©΄ μ¬λ°λ₯΄μ§ μμ κ΄νΈ μμ΄λ€.
- μ€νμ topκ³Ό μ§μ΄ λ§λ κ΄νΈλΌλ©΄ popνλ€.
- μμ κ³Όμ μ λλΈ ν μ€νμ κ΄νΈκ° λ¨μμμΌλ©΄ μ¬λ°λ₯΄μ§ μμ κ΄νΈ μμ΄κ³ , λ°λλ‘ μ€νμ κ΄νΈκ° λ¨μμμ§ μλ€λ©΄ μ¬λ°λ₯Έ κ΄νΈ μμ΄λ€.
λ¬Έμ ν΄κ²°
μλλ λ°±μ€(BOJ) 4949λ² κ· νμ‘ν μΈμμ μμ μκ³ λ¦¬μ¦μ μ΄μ©ν΄ ν΄κ²°ν μ½λμ΄λ€.
https://www.acmicpc.net/problem/4949
#include <bits/stdc++.h> using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); while (true) { string str; getline(cin, str); if (str == ".") { break; } stack<char> S; bool isValid = true; for (auto c : str) { if (c == '(' || c == '[') { S.push(c); } else if (c == ')') { if (S.empty() || S.top() != '(') { // μ¬λ°λ₯΄μ§ μμ κ΄νΈ μ isValid = false; break; } S.pop(); } else if (c == ']') { if (S.empty() || S.top() != '[') { // μ¬λ°λ₯΄μ§ μμ κ΄νΈ μ isValid = false; break; } S.pop(); } } if (!S.empty()) { // λͺ¨λ κ³Όμ μ λλΈ ν μ€νμ κ΄νΈκ° λ¨μμμΌλ©΄ μ¬λ°λ₯΄μ§ μμ! isValid = false; } if (isValid) { cout << "yes" << '\n'; } else { cout << "no" << '\n'; } } return 0; }
λ°μν