코딩테스트 연습 - 괄호 변환 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를
programmers.co.kr
접근 : 스택, 재귀
알고리즘을 주어줘서 그나마 풀 수 있었던 문제였다.
처음에는 혼자 풀어서 20점이나와 재귀방법을 참고하고 풀었다.
재귀를 알고있지만 활용하는 부분에서 많이 부족함을 느끼고 있다.
Javascript
function solution(p) {
var answer = '';
if(p.length===0) return "";
let left = 0;
let right = 0;
for(let i=0;i<p.length;i++){
if(p[i]==="(") left++;
else right++;
if(left===right){
if(check(p.slice(0,i+1))){
answer = p.slice(0,i+1) + solution(p.slice(i+1));
return answer;
}else {
answer = "("+solution(p.slice(i+1)) +")";
for(let j=1;j<i;j++){
if(p[j]==="("){
answer +=")";
} else {
answer +="("
}
}
}
return answer;
}
}
return answer;
}
function check (u){
let stk = [];
for(let i=0;i<u.length;i++){
if(u[i]==="(") stk.push(u[i]);
else {
if(stk.length===0) return false;
if(stk[stk.length-1] ==="("){
stk.pop();
}
}
}
if(stk.length===0) return true;
else return false;
}
'코딩테스트(알고리즘) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 2 x n 타일링 (Javascript) (0) | 2023.02.07 |
---|---|
[프로그래머스] 게임 맵 최단거리(Javascript) (0) | 2023.02.07 |
[프로그래머스] 멀쩡한 사각형 (Javascript) (0) | 2022.06.30 |
[프로그래머스] 오픈채팅방 (Javascript) (0) | 2022.06.30 |
[프로그래머스] 문자열 압축 (Javascript) (0) | 2022.06.30 |