올바른 괄호

RyuIsangGo🤘·2023년 9월 5일
0

문제

나의코드

const solution = (s) => {
    let stack = [];
    for (let i = 0; i < s.length; i++) {
        if(s[i] === '(') {
            stack.push(s[i]);
        }else {
            if(stack[stack.length -1] === '(') {
                stack.pop();
            }else {
                stack.push(s[i]);
            }
        }
    }
    return stack.length === 0 ? true : false;
}

로직흐름

스택 관련 문제이다.

  • stack을 만든다.
  • s를 순회한다.
  • 현재 요소가 (라면 stack에 추가한다.
  • 현재 요소가 )이면서 stack의 마지막 요소가 (라면 stack에서 마지막 요소를 제거한다.
  • 현재 요소가 )이면서 stack의 마지막 요소가 )라면 stack에 )를 추가한다.
  • 반복을 마치고, stack의 크기가 0이면 true, 아니라면 false를 반환한다.
profile
이전 블로그 입니다.

0개의 댓글