function solution(s) {
let stack = [];
let answer = 'YES';
for (let x of s) {
if (x === '(') stack.push(x);
else stack.pop();
}
if (stack.length) answer = 'NO';
return answer;
}
let a = '(()(()))(()';
console.log(solution(a));
굳이 다 돌릴필요 없이 중간에 stack이 비었을 때 ')'가 들어오면 바로
false
return 해버리면됨
function solution(s) {
let stack = [];
let answer = 'YES';
for (let x of s) {
if (x === '(') stack.push(x);
else {
// 비어있는데 ')' 들어오는 경우
if (!stack.length) return 'NO';
stack.pop();
}
}
//
if (stack.length) answer = 'NO';
return answer;
}
let a = '(()(()))(()';
console.log(solution(a));
function solution(s) {
let answer = 'YES';
stack = [];
for (let x of s) {
if (x === '(') stack.push(x);
else {
if (stack.length === 0) return 'NO';
stack.pop();
}
}
if (stack.length > 0) return 'NO';
return answer;
}
let a = '(()(()))(()';
console.log(solution(a));