λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸƒ algorithm/leetcode

LeetCode 20 - Valid Parentheses (Easy)

by HandHand 2021. 3. 2.

문제

LeetCode - 20번

풀이 κ³Όμ •

μŠ€νƒ 을 ν™œμš©ν•˜λŠ” λŒ€ν‘œμ μΈ κ΄„ν˜Έ 쌍 λ§žμΆ”κΈ° λ¬Έμ œμž…λ‹ˆλ‹€.

λ‹«λŠ” κ΄„ν˜Έ κ°€ λ‚˜νƒ€λ‚¬μ„ λ•Œ μŠ€νƒμ˜ κ°€μž₯ μœ„μ— 짝이 λ§žλŠ” μ—¬λŠ” κ΄„ν˜Έ κ°€ μ‘΄μž¬ν•˜λŠ”μ§€ νŒλ‹¨ν•˜λ©΄ λ˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.
이번 문제λ₯Ό 톡해 javascript 의 includes λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜λŠ” 방법을 μ•Œ 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

|| μ—°μ‚°μžλ‘œ or 처리 ν•΄μ£ΌλŠ” 것이 μ½”λ“œλ„ 길어지고 λ²ˆκ±°λ‘œμ› λŠ”λ°
μ›ν•˜λŠ” μš”μ†Œκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ νŒλ‹¨ν•˜λŠ” includes λ₯Ό ν™œμš©ν•΄μ„œ μ‰½κ²Œ 쑰건을 νŒλ‹¨ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œ

/**
 * @param {string} s
 * @return {boolean}
 */
function top(stack) {
  return stack[stack.length - 1];
}

var isValid = function (s) {
  const bracket = [];

  for (let c of s) {
    if (["(", "{", "["].includes(c)) {
      bracket.push(c);
    } else {
      if (!["()", "[]", "{}"].includes(top(bracket) + c)) {
        return false;
      }

      bracket.pop();
    }
  }

  return bracket.length === 0;
};
λ°˜μ‘ν˜•

πŸ’¬ λŒ“κΈ€