Skip to content

Commit a5e4185

Browse files
committed
valid parentheses solve
1 parent e88c1bb commit a5e4185

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

valid-parentheses/yeeZinu.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @param {string} s
3+
* @return {boolean}
4+
5+
괄호 유효성 검사(
6+
어느 괄호로 열어도 상관은 없지만 열었으면 닫아야지 true 안닫으면 false
7+
({)} -> 이런식으로 중간에 섞여서 닫혀있지 않다는 전제의 문제
8+
*/
9+
var isValid = function (s) {
10+
if (s.length % 2 === 1) {
11+
return false
12+
}
13+
14+
// 괄호들이 들어갈 스택배열
15+
const stack = [];
16+
17+
// 괄호 짝 객체
18+
const pair = {
19+
"(": ")",
20+
"{": "}",
21+
"[": "]",
22+
}
23+
24+
for (let i = 0; i < s.length; i++) {
25+
// 열린괄호면 스택추가
26+
if (s[i] in pair) {
27+
stack.push(s[i]);
28+
}
29+
// 닫힌 괄호라면?
30+
else {
31+
// 스택배열의 마지막이 같은 종류의 괄호라면 제거
32+
if (pair[stack.at(-1)] === s[i]) {
33+
stack.pop();
34+
}
35+
// 아니면 false
36+
else {
37+
return false
38+
}
39+
}
40+
}
41+
// 스택배열이 비었으면 true
42+
return stack.length === 0;
43+
};

0 commit comments

Comments
 (0)