๐Ÿง  codingtest/javascript 100์ œ

๋ฌธ์ œ53. ๊ด„ํ˜ธ ๋ฌธ์ž์—ด

awesomeyelim 2022. 3. 28. 07:33
728x90

 

 

 

 

๊ด„ํ˜ธ๋ฌธ์ž์—ด ->'{','}','[',']','(',')'

  • (()) -> ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด, (() -> ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋ฌธ์ž์—ด
  • ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด์ธ์ง€ ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋ฌธ์ž์—ด์ธ์ง€ "YES" ์™€ "NO"๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•ด๋ณด์ž.

 

๋ฏธ๋ฆฌ ์ƒ๊ฐํ•ด ๋ด์•ผํ•  ๊ฒƒ

  • 6๊ฐ€์ง€ ์ผ€์ด์Šค๋ฅผ ์‚ดํŽด๋ด„
  1. (())
  2. (((()()())))
  3. ()()()
  4. )))((( -> ์ˆœ์„œ๊ฐ€ ๋งž์•„์•ผํ•จ/ ()->(o) )(->(x)
  5. ())
  6. ())(

  • '{','}','[',']','(',')' ์—ฌ๋Ÿฌ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด๋“ค์„ counting ํ•ด์ฃผ๊ธฐ์œ„ํ•ด
    ํ•จ์ˆ˜๋‚ด let count = 0 ์„ ์–ธ
function mathBrackets(arr) {
  let count = 0;

 

 

 

  • for ๋ฌธ๋‚ด if ๋ฌธ์„ ์„ ์–ธํ•œ๋‹ค
function mathBrackets(arr) {
  let count = 0;

  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === "(" || arr[i] === "[" || arr[i] === "{") {
      count++;
    }
    if (arr[i] === ")" || arr[i] === "]" || arr[i] === "}") {
      count--;
    }
  }

  if (count !== 0) {
    return false;
  }

  let bracket = [];

  for (let i in arr) {
    if (arr[i] === "(") {
      bracket.push("(");
    }
    if (arr[i] === ")") {
      if (bracket.length === 0) {
        //')' ๋ถ€ํ„ฐ ์‹œ์ž‘ํ• ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— return false๋ฅผ ๋ฐ˜ํ™˜
        return false;
      }
      bracket.pop();
    }
    if (arr[i] === "[") {
      bracket.push("[");
    }
    if (arr[i] === "]") {
      if (bracket.length === 0) {
        return false;
      }
      bracket.pop();
    }
    if (arr[i] === "{") {
      bracket.push("{");
    }
    if (arr[i] === "}") {
      if (bracket.length === 0) {
        return false;
      }
      bracket.pop();
    }
    return true;
  }
}
// const num = prompt().split("")
const num = "(())}{}".split("");

if (mathBrackets(num) == true) {
  console.log("YES");
} else {
  console.log("NO");
}