function solution(s){
const stack = [];
let idx = 0;
if(!s.includes('(')) return false;
while(idx < s.length) {
const c = s.charAt(idx++);
if(c === '(') stack.push(c);
else if(stack.length === 0) return false;
else stack.pop();
}
return stack.length ? false : true;
}
효율성 케이스 1번이 계속 실패 났었음 -> (((((( 만 길게 있는 문자열은 굉장히 비효율적으로 동작할 것이라는 것 파악 -> 예외처리 -> 해결
stack의 가장 대표적인 예제
stack을 사용하는 문제는 Brute로 풀었을 때 수행시간 오류 난다면 생각해봄직함
이전 결과를 이용하여 현재 결과를 함께 도출해낼 수 있음.
js에서는 array의 어떤 메소드를 이용하냐에 따라 stack, queue가 될 수 있음. 다만 priority queue는 따로 구현해야 할 듯