๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ] section06 - 2 - ๊ด„ํ˜ธ ๋ฌธ์ž ์ œ๊ฑฐ

by YWTechIT 2021. 8. 31.
728x90

๐Ÿ“ section06 - 2 - ๊ด„ํ˜ธ ๋ฌธ์ž ์ œ๊ฑฐ

์†Œ๊ด„ํ˜ธ() ์‚ฌ์ด์˜ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‚จ์€ ๋ฌธ์ž๋งŒ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ๋‹ค. ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  1. ๋ฐ˜๋ณต๋ฌธ์„ ์„ ์–ธํ•˜๊ณ  ํ˜„์žฌ ๊ฐ’์ด ๋ฌธ์ž์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.(์ •๊ทœ์‹) ์ด๋•Œ, stack์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด answer์— ๊ฐ’์„ ๋”ํ•ด์ค€๋‹ค.
  2. ํ˜„์žฌ ๊ฐ’์ด (๋ฉด ๋ชจ๋‘ stack์— ๋„ฃ๋Š”๋‹ค.
  3. ํ˜„์žฌ ๊ฐ’์ด )์ธ๋ฐ, ๋งŒ์•ฝ stack[-1]์ด (๋ฉด stack.pop์„ ํ•ด์ค€๋‹ค.

 

์„ ์ƒ๋‹˜์€ ์กฐ๊ธˆ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘ธ์…จ๋‹ค.

  1. (์™€ ๋ฌธ์ž๋Š” ๋ชจ๋‘ stack.pushํ•œ๋‹ค.
  2. )๊ฐ€ ๋‚˜์˜ค๋ฉด (๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ชจ๋‘ 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("");
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€