반응형
https://programmers.co.kr/learn/courses/30/lessons/76502
#include <string>
#include <vector>
#include <stack>
using namespace std;
bool isValid(string& s) {
stack<char> stk;
for(int i=0; i<s.size(); i++) {
if(s[i] == '[' || s[i] == '{' || s[i] == '(') stk.push(s[i]);
else {
if(stk.empty() || stk.top() != (s[i] == ']' ? '[' : (s[i] == ')' ? '(' : '{'))) return false;
stk.pop();
}
}
return stk.empty();
}
void rotate(string& s) {
s = s.substr(1) + s[0];
}
int solution(string s) {
int answer = isValid(s);
for(int i=1; i<s.size(); i++) {
rotate(s);
answer += isValid(s);
}
return answer;
}
반응형
'Algorithm' 카테고리의 다른 글
프로그래머스 : 조이스틱 (0) | 2021.11.15 |
---|---|
프로그래머스 : 짝지어 제거하기 (0) | 2021.11.15 |
프로그래머스 : 가장 큰 정사각형 (0) | 2021.11.15 |
프로그래머스 : 이진 변환 반복하기 (0) | 2021.11.15 |
프로그래머스 : 숫자의 표현 (0) | 2021.11.15 |