티스토리 뷰

#include <iostream>
#include <stack>
using namespace std;

string str;

int main(void)
{
    cin >> str;
    stack<char> s;
    char before = ' ';
    int ans = 0;

    for (int i = 0; i < str.size(); i++) {
        if (str[i] == '(')
            s.push(str[i]);
        else {
            if (before == '(') {
                s.pop();
                ans += s.size();
            }
            else if (before == ')') {
                s.pop();
                ans++;
            }
        }
        before = str[i];
    }
    printf("%d", ans);

    return 0;
}

풀이 : 6분

 

코딩 : 4분

 

디버깅 : 1분
이전 문자를 보고 분기하는데 이전 문자 업데이트를 하지 않음

'프로그래밍 > 문제풀이' 카테고리의 다른 글

[BOJ] 17298 오큰수  (0) 2020.06.13
[BOJ] 14891 톱니바퀴  (0) 2020.05.20
[BOJ] 1107 리모컨  (0) 2020.05.20
[BOJ] 10971 외판원 순회2  (0) 2020.05.15
[BOJ] 11051 이항 계수 2  (0) 2020.02.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함