[Programmers] 올바른 괄호

Jinny·2025년 1월 10일
0
  • 날짜 / 주차-누적 횟수: 2025.01.10(금) / 2주차-18회
  • 사이트 이름: 프로그래머스
  • 사용 언어: 자바스크립트
  • 문제 고유 번호 및 레벨: 12909 / Lev 2
  • 나의 풀이 방법:
    function solution(s){
        let stack = [];
        
        if (s[0] === ')') return false;
        
        s.split('').forEach(v => {
            if (v === '(') stack.push('(');
            if (v === ')') stack.pop();
        });
        
        return stack.length === 0 ? true : false ;
    }
    • stack 빈 배열을 만든다.
    • 열린 괄호가 있으면 stack 배열에 넣고, 닫힌 괄호가 있으면 stack 에 있는 열린 괄호를 없앤다.
    • 최종적으로 stack이 빈 배열이면 true값을 반환, 그렇지 않으면 false값을 반환한다.
  • 최적 풀이 방법:
    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;
    }
    • 내가 stack을 빈 배열로 만들었다면 . 이분은 cum이라는 변수를 만들었다.
    • 열린괄호가 있으면 1을 추가하고 그렇지 않으면 1을 뺀다.
    • 최종적으로 cum변수의 숫자가 0이면 true를 리턴한다.
  • 배운 개념:
    • 알고리즘 개념 ‘스택’
      • 쌓는다는 의미의 어원
      • 먼저 입력한 데이터를 가장 나중에 꺼낼 수 있는 구조
profile
세상을 이롭게 하는 프론트엔드 개발자 Jinny

0개의 댓글

관련 채용 정보