[프로그래머스] 올바른 괄호
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;
}