[프로그래머스] 올바른 괄호

2023. 1. 19. 15:59기록/Programmers

    목차

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


나의 문제 풀이

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

    return stack.length > 0 ? false : true ;
}
  • 문자열의 길이가 1이거나 첫번째 문자가 닫는 괄호인 경우 올바르지 않은 괄호임
  • 문자열 순회
    • 열린 괄호일 경우 스택에 넣음
    • 닫힌 괄호일 경우 스택에서 꺼냄 (괄호 한쌍 제거)
  • 스택의 길이가 0보다 클 경우 올바르지 않은 괄호임 (괄호가 남아있음)
  • 스택의 길이가 0일 경우 올바른 괄호임 (괄호가 모두 제거됨)

다른 사람의 문제 풀이

function solution(s){
    let cum = 0;
    for (let paren of s) {
        cum += paren === '(' ? 1 : -1;
        if(cum < 0) {
            return false;
        }
    }
    return cum === 0? true: false;
}