Suhwanc

AC 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <stack>
using namespace std;
 
 
int main()
{
    int c; scanf("%d"&c);
    while (c--) {
        stack<char> st;
        string s;
        cin >> s;
        bool check = true;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == ')') {
                if (st.empty() || st.top() != '(') {
                    check = false;
                    break;
                }
                else {
                    st.pop();
                }
            }
            else if (s[i] == '}') {
                if (st.empty() || st.top() != '{') {
                    check = false;
                    break;
                }
                else {
                    st.pop();
                }
            }
            else if (s[i] == ']') {
                if (st.empty() || st.top() != '[') {
                    check = false;
                    break;
                }
                else {
                    st.pop();
                }
            }
            else//열린 괄호일 경우
                st.push(s[i]);
            }
        }
        if (!st.empty()) check = false;
 
        if (check) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}
cs

스택을 이용한 괄호 짝 맞추기 문제입니다.

 

스택이 비어있는 경우와 마지막 처리 부분만 유의하면 됩니다.

'종만북' 카테고리의 다른 글

[종만북] 행렬의 거듭제곱  (0) 2020.07.19
[종만북] NERD2  (0) 2020.04.15
[종만북] 크리스마스 인형  (1) 2020.03.30
[종만북] 조세푸스 문제  (0) 2020.03.30
[종만북] 졸업 학기  (0) 2020.03.30