File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -61,3 +61,37 @@ def isValid(self, s: str) -> bool:
6161 if stack :
6262 return False
6363 return True
64+
65+
66+
67+ # 7๊ธฐ ํ์ด
68+ # ์๊ฐ ๋ณต์ก๋: O(n)
69+ # - s์ ๊ธธ์ด n์ ์๊ฐ๋ณต์ก๋๊ฐ ์ ํด์ง
70+ # ๊ณต๊ฐ ๋ณต์ก๋: O(n)
71+ # - ์ผ์ชฝ ๊ดํธ๋ฅผ ์ ์ฅํ stacks(list) ๋ณ์์ ๊ธธ์ด๋ s์ ๊ธธ์ด์ ์ํด ์ ํด์ง
72+ # - stack์ ์ต๋ ๊ธธ์ด๋ s๊ฐ ๋ชจ๋ ์ผ์ชฝ ๊ดํธ๋ก ๋์ด ์์ ๋
73+ class Solution :
74+ def isValid (self , s : str ) -> bool :
75+ # ์ค๋ฅธ์ชฝ ๊ดํธ๊ฐ ๋ค์ด์ฌ ๋์ ์์ ์ฝ๊ฒ ์ฐพ๊ธฐ ์ํด ๋ง๋ dictionary
76+ brackets = {")" : "(" , "}" : "{" , "]" : "[" }
77+
78+ # ์ผ์ชฝ ๊ดํธ๋ฅผ ์ ์ฅํ list
79+ stacks = []
80+
81+ for ss in s :
82+ if stacks and ss in brackets .keys ():
83+ # stacks์ ๊ดํธ๊ฐ ์ ์ฅ๋์ด ์์ผ๋ฉด์, ss๋ก ์ค๋ฅธ์ชฝ ๊ดํธ๊ฐ ๋ค์ด์ค๋ฉด
84+ # ์์ ๋น๊ต
85+ if stacks [- 1 ] != brackets [ss ]:
86+ # stacks์ ๋ง์ง๋ง ๋ฌธ์(๊ฐ์ฅ ๋ฆ๊ฒ ๋ค์ด์จ ์ผ์ชฝ ๊ดํธ)์ ํ์ฌ ๋ค์ด์จ ์ค๋ฅธ์ชฝ ๊ดํธ์ ์์ด ๊ฐ์ง ์์ผ๋ฉด
87+ # ๊ดํธ์ ์์ด ๋ง์ง ์์ผ๋ฏ๋ก False๋ฅผ early return
88+ return False
89+ else :
90+ # ์์ด ๋ง๋๋ค๋ฉด stacks์ ์๋ ๋ง์ง๋ง ์ผ์ชฝ ๊ดํธ๋ ๋์ด์ ๋น๊ตํ ํ์๊ฐ ์์ผ๋ฏ๋ก pop
91+ stacks .pop ()
92+ else :
93+ # ss๊ฐ ์ผ์ชฝ ๊ดํธ์ธ ๊ฒฝ์ฐ์ stacks์ ์์์ค๋ค
94+ stacks .append (ss )
95+
96+ # ๋ชจ๋ ์๋น๊ต๋ฅผ ํ๊ณ stacks์ ๊ดํธ๊ฐ ๋จ์์๋ ์ง ์ฌ๋ถ๋ฅผ return
97+ return not stacks
You canโt perform that action at this time.
0 commit comments