이 문제는 국어문제가 더 비슷한것 같다
문제만 이해한다면 풀수있을것이다
딱히 중요하게 사용한 것들은 없는거 같다
#include <string>
using namespace std;
bool check(string str){//올바른 괄호 문자열인가 ?
int open=0;
int close=0;
for(int i=0;i<str.length();i++){
if(str.at(i)==')'){
close++;
if(open<close){
return false;
}
}
else open++;
}
return true;
}
string divide(string str){//u,v 로 나누기
if(str=="")
return "";
int open=0;
int close=0;
string u;
string v;
for(int i=0;i<str.length();i++){
if(str.at(i)==')')close++;
else if(str.at(i)=='(')open++;
if(open==close) {
u=str.substr(0,i+1);
v=str.substr(i+1);
break;
}
}
if(check(u)){
return u+divide(v);
}
else{
string temp = "(" + divide(v) + ")";
u = u.substr(1, u.length() - 2);
for (int i = 0; i < u.length(); i++) {
if (u.at(i) == '(')
temp = temp + ')';
else
temp = temp + '(';
}
return temp;
}
}
string solution(string p) {
string answer=divide(p);
return answer;
}
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 문제풀이] 더 맵게 문제풀이 (0) | 2021.06.25 |
---|---|
[프로그래머스] 다음 큰 숫자 문제풀이 (0) | 2021.06.14 |
[C++]2020 KAKAO BLIND RECRUITMENT 1번문제 (0) | 2021.03.25 |
프로그래머스 타겟 넘버 문제풀이 (0) | 2021.02.15 |
프로그래머스 전화번호 목록 문제 풀이 (0) | 2021.02.09 |