[ํ๋ก๊ทธ๋๋จธ์ค] ๊ดํธ ๋ณํ (js)
https://programmers.co.kr/learn/courses/30/lessons/60058?language=javascript
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ดํธ ๋ณํ
์นด์นด์ค์ ์ ์ ๊ฐ๋ฐ์๋ก ์ ์ฌํ "์ฝ"์ ์ ๋ฐฐ ๊ฐ๋ฐ์๋ก๋ถํฐ ๊ฐ๋ฐ์ญ๋ ๊ฐํ๋ฅผ ์ํด ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ๋ฌธ์ ์ ์ ๋ฐ๊ฒฌํ๊ณ ์์ ํ๋ผ๋ ์ ๋ฌด ๊ณผ์ ๋ฅผ ๋ฐ์์ต๋๋ค. ์์ค๋ฅผ
programmers.co.kr
function solution(p) {
if(p === '')
return '';
let count = 0;
let bool = false;
let txt = "";
for(let i = 0; i < p.length; i++){
if(p[i] == '(') count++;
else count--;
if(count < 0) bool = true;
if(count === 0){
let u = p.slice(0, i+1);
let v = p.slice(i+1, p.length);
if(bool){
txt += '(';
txt += solution(v);
txt += ')';
for (let j = 1; j < i; j++) {
if (p[j] == ')') txt += '(';
if (p[j] == '(') txt += ')';
}
return txt;
}
else{
txt += u;
txt += solution(v);
return txt;
}
}
}
}
๊ฐ๋ ์นด์นด์ค ๋ฌธ์ ๋ฅผ ํ๋ค๋ณด๋ฉด ๋ฌธ์ ์์ฒด๊ฐ ์ดํด๊ฐ ์๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.. ๋๋ง ์ดํด ๋ชปํ๋ ๊ฑด๊ฐ ํ๊ณ ์ง๋ฌธํ๊ธฐ๋ฅผ ๋ณด๋ฉด
๋ฌธ์ ์์ ์ค๋ช ํ๋ ๊ฒ ๋ช ํํ์ง ์์ ๋๋ถ๋ถ ์ดํด ๋ชปํ ์ฑ ๋ฌธ์ ํ์ดํ๋ ์ฌ๋๋ค์ด ์๋ค.
๋ฌธ์ ๋ง ์ดํดํ๋ฉด ํ๋ผ๋๋๋ก ํ๋ฉด ๋ฐ๋ก ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ์ฌ๊ท๋ก ํ๋ผ๊ณ ๋ ์๋ ค์คฌ์ผ๋ ๋ฐ๋ผ๊ฐ๊ธฐ๋ง ํ ์ ์๋ค๋ฉด
๋ค๋ค ํ ์ ์์ ๊ฒ์ด๋ค.