FE PARADISE

프로그래머스 올바른 괄호 - 자바스크립트 풀이 본문

카테고리 없음

프로그래머스 올바른 괄호 - 자바스크립트 풀이

PARADISE247 2024. 11. 26. 23:30
반응형
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

아무 사진이나 투척하기

해당 문제를 스택을 이용하여 풀어보았다. 

풀이

우선 스택 변수를 선언한다.

let stack = [];

해당 스택에는 문자열을 돌면서 괄호가 차례대로 쌓이게 된다.

스택에 괄호를 쌓으면서 조건에 따라 판별해보자.

다음 코드를 보자.

for(let i = 0; i < s.length; i++){
	if(i > 0 && s[i] === ")" && stack.at(-1) === "(") stack.pop();
    else stack.push(s[i]);
}

해당 코드는 문자열 내에 있는 괄호를 순차적으로 돌면서 "(" 이 괄호면 스택에 추가하고 ")" 이 괄호면 스택 마지막에 위치한 괄호가 "(" 일 경우, 마지막에 위치한 "(" 괄호를 스택에서 제거한다.

 

이 후 문자열 내 괄호를 다 확인한 후 스택에 마지막까지 괄호가 남아있으면 false를 스택이 비어있다면 true를 반환하면 된다.

return stack.length === 0;

전체 코드

function solution(s){
    let stack = [];
    for(let i = 0; i < s.length; i++){
        if(i > 0 && s[i] === ")" && stack.at(-1) === "(") stack.pop();
        else stack.push(s[i]);
    }
    return stack.length === 0;
}
반응형