๋ฌธ์
์ฝ๋
#include <iostream>
#include <stack>
#include <map>
using namespace std;
int main(){
string s; cin>>s;
stack<char>st;
map<char,int>m;
int ans = 0, temp = 1;
for(int i=0; i<s.length(); i++) m[s[i]]++;
if(m['[']!=m[']']||m['(']!=m[')']){
cout<<0;
return 0;
}
for(int i=0; i<s.length(); i++){
if(s[i]=='('){
temp *= 2;
st.push('(');
}
else if(s[i]=='['){
temp *= 3;
st.push('[');
}
else if(s[i]==')'){
if(st.empty()||st.top()=='['){
ans = 0;
break;
}
else if(s[i-1]=='('){
ans+=temp;
temp/=2;
st.pop();
}
else{
temp/=2;
st.pop();
}
}
else if(s[i]==']'){
if(st.empty()||st.top()=='('){
ans = 0;
break;
}
else if(s[i-1]=='['){
ans+=temp;
temp/=3;
st.pop();
}
else{
temp/=3;
st.pop();
}
}
}
cout<<ans;
}
ํ์ด
์ด๋ ค์ ์ต๋๋ค. ๋ฌธ์ ์ดํด๋ ๊ฐ๋จํ์ผ๋ ์ด๋ป๊ฒ ๊ตฌํ์ ํด์ผ ํ ์ง ๊ณ์ ๋จธ๋ฆฟ์์์ ๋งด๋์์ต๋๋ค.
์ ํ์ด ๋ฐฉ์์ผ๋ก ์ค๋ช ์ ๋๋ฆฌ๋ฉด ์ ๋ ฅ ๊ฐ์ด "(()[[]])([])" ์ผ๋ 2x2 + 3x3x2 + 3x2์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ๊ฒ๋ ์ค๊ณํ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 24498๋ฒ - blobnom (0) | 2022.03.23 |
---|---|
[๋ฐฑ์ค,c++] 1120๋ฒ - ๋ฌธ์์ด (0) | 2022.03.22 |
[๋ฐฑ์ค,c++] 11000๋ฒ - ๊ฐ์์ค ๋ฐฐ์ (0) | 2022.03.18 |
[๋ฐฑ์ค,c++] 1748๋ฒ - ์ ์ด์ด ์ฐ๊ธฐ1 (0) | 2022.03.15 |
[๋ฐฑ์ค,c++] 1912๋ฒ - ์ฐ์ํฉ (0) | 2022.03.15 |
[๋ฐฑ์ค,c++] 1913๋ฒ - ๋ฌํฝ์ด (0) | 2022.03.15 |
๋๊ธ