-
5주차 - 카카오 문제 (괄호변환)old/Algorithm 2020. 7. 12. 20:09728x90
코드
#include <string> #include <vector> #include <stack> #include <iostream> using namespace std; bool is_correct(string a){ stack<char> s; s.push(a[0]); for(int i = 1; i < a.size(); i++){ if(a[i] == '('){ s.push(a[i]); }else{ if(s.empty()){ return false; }else{ s.pop(); } } } if(s.empty()){ return true; }else{ return false; } } string converter(string w){ if(w == ""){ return ""; } int left = 0; int right = 0; string u = ""; string v = ""; for(int i = 0; i < w.size(); i++){ if(w[i] == '('){ left++; }else{ right++; } if(left == right){ u = w.substr(0, i+1); v = w.substr(i+1); break; } } if(is_correct(u)){ return u + converter(v); }else{ string temp = "(" + converter(v) + ")"; u = u.substr(1, u.size()-2); for(int i = 0; i < u.size(); i++){ if(u[i] == '('){ temp += ")"; }else{ temp += "("; } } return temp; } return "hello"; } string solution(string p) { string answer = converter(p); return answer; }
규칙대로 재귀함수 호출!
'old > Algorithm' 카테고리의 다른 글
5주차 - 카카오 가사검색 문제 (0) 2020.07.12 5주차 카카오문제(자물쇠와 열쇠) (0) 2020.07.12 5주차 - 카카오 문제 ( 문자열 압축문제) (0) 2020.07.06 4주차 6월22일 - 6월28일 (0) 2020.06.22 3주차 6월15일 - 6월21일 (0) 2020.06.13