[알고리즘 + 자료구조]/[프로그래머스]
프로그래머스 괄호 회전하기
Hevton
2023. 8. 5. 00:15
반응형
일단 풀긴 했는데 리팩토링이 필요하다.
회전하면서 check함수를 호출하여 올바른 괄호 상태인지를 체크하는 과정을 가졌다.
#include <string>
#include <vector>
#include <stack>
using namespace std;
int len = 0;
bool check(string s) {
stack<char> stk;
for(int i = 0; i < len; i++) {
if(s[i] == '(' || s[i] == '[' || s[i] == '{')
stk.push(s[i]);
else if(stk.empty() || s[i] - stk.top() > 2) return false;
else
stk.pop();
}
if(stk.empty())
return true;
else
return false;
}
int solution(string s) {
int answer = 0;
len = s.length();
for(int i = 0; i < len; i++) {
if(check(s)) answer++;
char first = s[0]; // 맨 앞의 문자 추출
s.erase(0, 1); // 맨 앞의 문자 삭제
s += first; // 맨 뒤에 문자 추가
}
return answer;
}
다른 사람들의 풀이도 찾아봤는데, 내 풀이가 제일 낫다..?
반응형