주어지는 문자열 s의 괄호가 올바르게 닫혔는지 판별하여 true/false를 리턴해야 함
var isValid = function(s) {
let stack = [];
let openCount = 0;
let closedCount = 0;
const bracketMap = (open) => {
if(open === '('){
return ')';
}
else if(open === '{'){
return '}';
}
else {
return ']';
}
}
if(s[0] === ')' || s[0] === '}' || s[0] === ']' || s.length % 2 === 1){
return false;
}
for(let i = 0; i < s.length; i++){
if(s[i] === '(' || s[i] === '{' || s[i] === '['){
stack.push(s[i]);
openCount++;
}
else {
if(bracketMap(stack.pop()) === s[i]){
closedCount++;
continue;
}
return false;
}
}
if(openCount === closedCount){
return true
}
return false
};