728x90
문제
풀이
해당 문제는 문제를 해석하는데 어려움이 있었다...
일단 프로세스를 문제에서 설명해주기 때문에 프로세스를 따르며 구현하면 큰 어려움은 없다.
코드
function solution(p) {
const check = (st) => {
const stack = [];
for (let i = 0; i < st.length; i++) {
if (st[i] === '(') stack.push('(');
else {
if (stack.length === 0) return false;
stack.pop();
}
}
return true;
}
const func = (w) => {
let res = '';
let cnt = 0;
if (w.length === 0) return '';
for (let i = 0; i < w.length; i++) {
if (w[i] === '(') cnt += 1;
else cnt -= 1;
if (cnt === 0) {
const sl = w.slice(0, i + 1);
if (check(sl)) {
res = sl + func(w.slice(i + 1));
return res;
}
else {
res = '(' + func(w.slice(i + 1)) + ')';
for (let j = 1; j < i; j++) {
if (w[j] === '(') res = res + ')';
else res = res + '(';
}
}
return res;
}
}
}
return func(p);
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] [PCCP 기출문제] 3번 충돌위험 찾기 (0) | 2024.11.05 |
---|---|
[JS] 유사 칸코어 비트열 (0) | 2024.10.29 |
[JS] 자물쇠와 열쇠 (0) | 2024.10.03 |
[JS] 양과 늑대 (0) | 2024.10.01 |
[JS] 표편집 (1) | 2024.09.30 |