티스토리 뷰
문제 링크
풀이
풀이 순서를 주었기 때문에 해당 solution함수를 재귀 함수로 주어진 풀이대로 수행하였다.
풀이를 주니까 따라서 하기만 했더니 바로 성공
더보기
#include <string>
#include <vector>
#include <iostream>
#include <string>
using namespace std;
string solution(string p) {
string u = "";
string v = "";
// 빈 문자열 검사
if(p.length()==0)
{
return "";
}
else
{
// 균형잡힌 괄호 문자열 검사
int index = 0, gradient = 0;
do
{
if(p[index] == '(') gradient++;
else if(p[index] == ')') gradient--;
if(gradient==0){break;}
index++;
}while(index<p.length());
// u 할당
u = p.substr(0, index+1);
// v 할당
v = p.substr(index+1);
// 올바른 괄호 문자열 검사
gradient = 0;
for(int i=0; i<u.length(); i++)
{
if(u[i]=='(') gradient++;
else if(u[i]==')') gradient--;
if(gradient < 0) break;
}
if(gradient==0) // 올바르다
{
return u + solution(v);
}
else
{
u.erase(u.begin());
u.pop_back();
for(int i=0; i<u.length(); i++)
{
if(u[i]=='(') u[i] = ')';
else if(u[i]==')') u[i] = '(';
}
return "(" + solution(v) + ")" + u;
}
}
}
728x90
반응형
'Programmers Solutions > previous' 카테고리의 다른 글
튜플(2019 카카오 개발자 겨울 인턴십) (0) | 2020.07.31 |
---|---|
단체사진 찍기(2017 카카오코드 본선) (0) | 2020.07.31 |
문자열 압축(2020 카카오 블라인드 채용) (0) | 2020.07.31 |
카카오 프렌즈 컬러링북(2017 카카오코드 예선) (0) | 2020.07.31 |
멀쩡한 사각형(Summer/Winter Coding(2019)) (0) | 2020.07.31 |
댓글