File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {string } s
3+ * @return {boolean }
4+ */
5+ var isValid = function ( s ) {
6+ // stack๋ฌธ์ . open,close์ ๋ฐ๋ผ ์คํ์ฒ๋ฆฌ
7+ // ์ต์ข
stack ๋น์์ ธ์๋์ง ๋ง์ง๋ง ํ์ธ๊น์ง.
8+ const stack = [ ] ;
9+ // open,close Bracket index ์์น๋ก ์ง๊ถ ํ๋จํ ์์
10+ const openBracket = [ '(' , '[' , '{' ] ;
11+ const closeBracket = [ ')' , ']' , '}' ] ;
12+ // ๋ฐํํ ๊ฒฐ๊ณผ๊ฐ flag
13+ let result = true ;
14+
15+ [ ...s ] . map ( ( item ) => {
16+ // indexOf์์ฒด๋ ์ ํ๊ฒ์์ด๋ผ O(n)์ด์ง๋ง ๋ฐ์ดํฐ ์์ด 3์ผ๋ก ๊ณ ์ ๋์ด์์ผ๋ฏ๋ก O(1)๋ก ๋ณผ ์ ์์
17+ const itemIndexAtOpenBracket = openBracket . indexOf ( item ) ;
18+ const itemIndexAtCloseBracket = closeBracket . indexOf ( item ) ;
19+ // openBracket ํ์
20+ if ( itemIndexAtOpenBracket > - 1 ) {
21+ // push,pop ๋ชจ๋ O(1) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง. ๋์ ์์ ์ถ๊ฐ์ ๊ฑฐ์ด๋ฏ๋ก
22+ stack . push ( item ) ;
23+ }
24+ // clseBracket ํ์
25+ else if ( itemIndexAtCloseBracket > - 1 ) {
26+ const target = stack . pop ( ) ;
27+ if ( target !== openBracket [ itemIndexAtCloseBracket ] ) {
28+ result = false ;
29+ }
30+ }
31+ } ) ;
32+
33+ if ( stack . length !== 0 ) {
34+ result = false ;
35+ }
36+
37+ return result ;
38+ } ;
39+
40+ // ์๊ฐ๋ณต์ก๋ : O(n)
41+ // ๊ณต๊ฐ๋ณต์ก๋ : O(n)
You canโt perform that action at this time.
0 commit comments