var isValid = function (s) {
let stack = [];
for (let i = 0; i < s.length; i++) {
if (s[i] === '(') stack.push(')');
else if (s[i] === '{') stack.push('}');
else if (s[i] === '[') stack.push(']');
else {
if (s[i] !== stack.pop()) return false;
}
}
console.log('stack: ', stack);
return stack.length === 0;
};
let s = '{[]}';
isValid(s);
stackκ³Ό κ΄λ ¨ν λ¬Έμ λ₯Ό μ°μ΅ μ€μ΄λ€. λ¬Έμ μ μꡬμ¬νμ κ΄νΈκ° μ¬λ°λ₯΄κ² λ«νλλ₯Ό νλ³νλΌλ κ²μ΄λ€. μλ μμλ₯Ό 보면 λ°λ‘ μ μ μμ κ²μ΄λ€.

λ¬Έμ μλ μκ΄νΈ, μ€κ΄νΈ, λκ΄νΈμ 3μ’ λ₯μ κ΄νΈκ° μ‘΄μ¬νλ€.
μ¬λ κ΄νΈκ° λμ¬ λλ κ°μ λͺ¨μμ λ«λ κ΄νΈλ₯Ό stack λ°°μ΄μ pushν΄μ€λ€.
μμ μ½λμ λ§μ§λ§ else λ¬Έμλ λ«λ κ΄νΈλ§ μμ λμ 쑰건μΈλ°, μ΄ λ s[i]κ° stack.pop()κ³Ό λ€λ₯΄λ€λ©΄ κ΄νΈ μμκ° inValid νλ€λ μλ―ΈμΌ κ²μ΄λ€. κ·ΈλΌ λ°λ‘ falseλ₯Ό return ν΄μ£Όλ©΄ λλ€.
λ§μ§λ§μ validν κ΄νΈ λͺ¨μμ΄λΌλ©΄ μ§κΈκΉμ§ stackμ λ€μ΄κ° μμμ κ°μμ stack.pop()μ νμκ° λμΌν κ²μ΄λ€. λ°λΌμ κ΄νΈκ° μ ν¨νλ€λ©΄ stackμ μΈμ λ λΉ λ°°μ΄μ΄ λλ€.
μμ , μ§μ μ νμν©λλ€!
https://leetcode.com/problems/valid-parentheses/