본문 바로가기
Algorithm 💫/Problem Solving

[백준] 2504번: 괄호의 값 / C++

by 돼지고기맛있다 2021. 9. 14.
반응형

✏️ 문제 링크

https://www.acmicpc.net/problem/2504

 

2504번: 괄호의 값

4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다.  만일

www.acmicpc.net

 

✏️ 문제 설명 (더보기 클릭 👆🏻)

 

✏️ 문제 코드


#include<bits/stdc++.h>


using namespace std;

int main()
{

    string paren; cin>>paren;
    int result=0, temp=1;
    deque<char> stk;
    
    for(int i=0; i<paren.size(); i++){
        if(paren[i]=='('){
            stk.push_back(paren[i]);
            temp*=2;
        }
        else if(paren[i]==')'){
            if(stk.empty() || stk.back() !='('){
                cout<<0<<"\n"; return 0;
            }
            if(paren[i-1]=='(') {
                result+=temp;
            }
            stk.pop_back(); temp/=2;
        }
        else if(paren[i]=='['){
            stk.push_back(paren[i]);
            temp*=3;
        }else if(paren[i]==']'){
            if(stk.empty() || stk.back() !='['){
                cout<<0<<"\n"; return 0;
            }
            if(paren[i-1]=='[') {
                result+=temp;
            }
            stk.pop_back(); temp/=3;
        }
    }
    cout<<(!stk.empty()? 0: result)<<"\n";
    
    return 0;
}

 

 

 

 ⭐ if feedback and question : comment please⭐  

 

 

반응형

댓글