반응형
프로그래머스
카카오 2020 블라인드 테스트
https://programmers.co.kr/learn/courses/30/lessons/60058
#include <string>
#include <vector>
using namespace std;
string check(string w);
string solution(string p) {
string answer = "";
int size = p.size();
int cnt = 0;
if(p == "") return "";
for(int i=0; i<size; i++) {
if(p[i] == '(') cnt++;
else cnt--;
if(cnt < 0) break;
}
if(cnt == 0) return p;
answer = check(p);
return answer;
}
string check(string w) {
string u,v;
int wsize = w.size();
int wcnt = 0;
if(w == "") return "";
for(int i=0; i<wsize; i++) {
if(w[i] == '(') wcnt++;
else wcnt--;
if(wcnt == 0) {
u = w.substr(0,i+1);
v = w.substr(i+1,wsize-(i+1));
break;
}
}
int usize = u.size();
int vsize = v.size();
int ucnt = 0;
for(int i=0; i<usize; i++) {
if(u[i] == '(') ucnt++;
else ucnt--;
if(ucnt < 0) break;
}
if(ucnt == 0) {
v = check(v);
return u + v;
}
else {
string str = "";
str += '(';
str += check(v);
str += ')';
u = u.substr(1,usize-2);
usize = u.size();
for(int i=0; i<usize; i++) {
if(u[i] == '(') str += ')';
else str += '(';
}
return str;
}
}
반응형
'코딩테스트 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][DFS] 네트워크 (0) | 2020.03.01 |
---|---|
[프로그래머스] 멀쩡한 사각형 (0) | 2020.03.01 |
[프로그래머스] 가장 큰 수 (0) | 2020.02.27 |
[프로그래머스] 쇠막대기 (0) | 2020.02.27 |
[프로그래머스] 모의고사 (0) | 2020.02.27 |