728x90
๐ section06 - 2 - ๊ดํธ ๋ฌธ์ ์ ๊ฑฐ
์๊ดํธ() ์ฌ์ด์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์ ์ธํ๊ณ ๋จ์ ๋ฌธ์๋ง ์ถ๋ ฅํ๋ ๋ฌธ์ ๋ค. ๋์ ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ฐ๋ณต๋ฌธ์ ์ ์ธํ๊ณ ํ์ฌ ๊ฐ์ด ๋ฌธ์์ธ์ง ์๋์ง ๊ฒ์ฌํ๋ค.(์ ๊ท์) ์ด๋,
stack์ ์๋ฌด๊ฒ๋ ์๋ค๋ฉดanswer์ ๊ฐ์ ๋ํด์ค๋ค. - ํ์ฌ ๊ฐ์ด
(๋ฉด ๋ชจ๋stack์ ๋ฃ๋๋ค. - ํ์ฌ ๊ฐ์ด
)์ธ๋ฐ, ๋ง์ฝstack[-1]์ด(๋ฉดstack.pop์ ํด์ค๋ค.
์ ์๋์ ์กฐ๊ธ ๋ ๊ฐ๋จํ๊ฒ ํธ์ จ๋ค.
(์ ๋ฌธ์๋ ๋ชจ๋stack.pushํ๋ค.)๊ฐ ๋์ค๋ฉด(๊ฐ ๋์ฌ ๋๊น์ง ๋ชจ๋popํด์ค๋ค.
728x90
let s = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
// let s = "(AB(A))B(A)";
console.log(solution(s));
// ๋์์ฝ๋
function solution(s) {
let stack = [];
let answer = "";
for (let x of s) {
if (stack.length===0 && /[A-Z]/.test(x)) answer+=x;
if (x === "(") stack.push(x);
else if(x === ")") if (stack[stack.length - 1] === "(") stack.pop();
}
return answer;
}
// ๊ฐ์์ฝ๋
function solution(s){
let stack = [];
for (let x of s){
if (x === ")") while(stack.pop() !== "(");
else stack.push(x)
}
return stack.join("");
}๋ฐ์ํ
๋๊ธ