반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자바스크립트 알고리즘
- 티스토리챌린지
- TypeScript
- 깃허브
- 타입스크립트
- 프로그래머스 자바스크립트 풀이
- next.js
- JavaScript
- 자바스크립트 배열
- Javascript sort
- TS
- mysql스키마
- 알고리즘
- 좌표거리구하기
- js 알고리즘
- 맨해튼거리
- 오블완
- MySQL
- node.js
- 맨해튼거리예제
- Javascript 정렬
- 자료구조
- 자바스크립트 정렬
- 프로그래머스
- 정규표현식문제
- 정렬 알고리즘
- 프로그래머스 자바스크립트
- binary search
- 프로그래머스 신규아이디추천
- 키패드누르기풀이
Archives
- Today
- Total
FE PARADISE
프로그래머스 올바른 괄호 - 자바스크립트 풀이 본문
반응형
프로그래머스
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;
}
반응형