https://programmers.co.kr/learn/courses/30/lessons/76502
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(string s) {
int answer = 0;
for (int i = 0; i < s.size(); i++) {
string tmp;
for (int k = 0; k < s.size()-1; k++) {
tmp += s[k + 1];
}
tmp += s[0];
stack<char> q;
for (int k = 0; k < tmp.size(); k++) {
if (tmp[k] == '[' || tmp[k] == '(' || tmp[k] == '{') {
q.push(tmp[k]);
}
else {
if (q.empty()) {
q.push('1');
break;
}
char tops = q.top();
if (tops == '[' && tmp[k] == ']') {
q.pop();
}
else if (tops == '{' && tmp[k] == '}') {
q.pop();
}
else if (tops == '(' && tmp[k] == ')') {
q.pop();
}
else {
break;
}
}
}
if (q.empty()) answer++;
s = tmp;
}
return answer;
}
'프로그래머스' 카테고리의 다른 글
숫자 게임 C++ (0) | 2022.03.18 |
---|---|
카드 짝 맞추기 C++ (0) | 2022.03.06 |
2개 이하로 다른 비트 C++ (0) | 2022.03.02 |
외벽 점검 C++ (0) | 2022.02.21 |
신고 결과 받기 C++ (0) | 2022.02.19 |