Skip to content

Commit 2d93a45

Browse files
committed
valid-parentheses
1 parent c6c68ab commit 2d93a45

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

โ€Žvalid-parentheses/JANGSEYEONG.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(n) - ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์ˆœํšŒ
3+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(n) - ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์—ฌ๋Š” ๊ด„ํ˜ธ์ผ ๋•Œ ์Šคํƒ์— n๊ฐœ ์ €์žฅ
4+
* @param {string} s
5+
* @return {boolean}
6+
*/
7+
var isValid = function (s) {
8+
const length = s.length;
9+
if (length % 2 === 1) return false; // ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ ๋ฐ”๋กœ return false
10+
11+
const MATCHES = { "(": ")", "{": "}", "[": "]" };
12+
13+
// ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด ์Šคํƒ์— ์ €์žฅ, ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด ์Šคํƒ์˜ ๋งˆ์ง€๋ง‰ ์—ฌ๋Š” ๊ด„ํ˜ธ์™€ ๋น„๊ต
14+
const stack = [];
15+
for (let char of s) {
16+
if (char in MATCHES) {
17+
stack.push(char);
18+
} else if (MATCHES[stack.pop()] !== char) {
19+
return false;
20+
}
21+
}
22+
// ์ง์ด ๋งž์œผ๋ฉด size 0
23+
return stack.length === 0;
24+
};

0 commit comments

Comments
ย (0)