프로그래머스 12909

박종대·2022년 9월 27일
0

Algorithm

목록 보기
2/3

프로그래머스 12909 올바른 괄호

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는 따로 구현해야 할 듯

profile
Frontend Developer

0개의 댓글