Study Anything ๐ง
1249. Minimum Remove to Make Valid Parentheses ๋ณธ๋ฌธ
1249. Minimum Remove to Make Valid Parentheses
์ 2022. 3. 15. 23:47#String #Stack
๊ดํธ '(', ')' ๋ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s ๊ฐ ์ฃผ์ด์ง๋ค.
์ต์ ๊ฐ์์ ๊ดํธ๋ฅผ ์ญ์ ํ ์ ํจ ๋ฌธ์์ด์ ๋ฐํํ๋ผ.
์ผ๋ฐ์ ์ผ๋ก, ๊ดํธ ๋ฌธ์์ด์ ๋ค์์ ๊ฒฝ์ฐ์ ์ ํจํ๋ค.
- ๋น ๋ฌธ์์ด์ด๊ฑฐ๋ ์๋ฌธ์๋ง ํฌํจ๋ ๋ฌธ์์ด
- ์ ํจํ ๋ฌธ์์ด A,B ๊ฐ ์ฐ๊ฒฐ๋ ๋ฌธ์์ด
- ์ ํจํ ๋ฌธ์์ด A๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด (A)
Trial 1 : Python3, 22/03/15
class Solution:
def minRemoveToMakeValid(self, s: str) -> str:
s = list(s) # ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ณํ
tmp = [] # ๊ดํธ ์์ ์ ์ฅํ ๋ฆฌ์คํธ ์ ์ธ
for i, char in enumerate(s): # enumerate() ๋ฉ์๋๋ ์ธ๋ฑ์ค์ ์์ ํจ๊ป ๋ฐํ
if char == '(':
tmp.append(i) # ์์๊ฐ '(' ์ผ ๋ ์์๋ฆฌ์คํธ์ ์ ์ฅ
elif char == ')':
if tmp: # ๋ฆฌ์คํธ๊ฐ ๋น์ด์์ผ๋ฉด False, ์๋๋ฉด True ๋ฐํ
tmp.pop() # ์์๊ฐ ')' ์ด๊ณ ์์๋ฆฌ์คํธ๊ฐ ๋น์ด์์ง ์์ ๋
else:
s[i] = '' # ์์๊ฐ ')' ์ด๊ณ ์์๋ฆฌ์คํธ๊ฐ ๋น์ด์์ ๋
while tmp:
s[tmp.pop()] = '' # ์์๋ฆฌ์คํธ์ ๋จ์ '(' ์ฒ๋ฆฌ
return ''.join(s)
ํ์ด
๋ฌธ์ ๋ฅผ ๋จ์ํ๊ฒ ์ ๋ฆฌํด๋ณด๋ฉด ๋ฌธ์์ด์ '(' (์ดํ ์๊ดํธ) ๊ฐ ์์ผ๋ฉด ๋ฐ๋์ ')' (์ดํ ๋ท๊ดํธ) ๊ฐ ๋์์ผ ํ๋ฉฐ ์ด๋ ํ ์ง์ด ๋ชจ์๋ผ๋ฉด ํด๋น ๊ดํธ๋ ์ญ์ ํด์ผ ํ๋ค.
๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ํ๋์ฉ ํ์ํ๋ฉด์ ์๊ดํธ๊ฐ ๋์ค๋ฉด ์์๋ฆฌ์คํธ์ ํด๋นํ๋ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ณ ์ดํ์ ๋ท๊ดํธ๊ฐ ๋์ค๋ฉด ์์๋ฆฌ์คํธ์์ ๊ฐ์ฅ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ์ญ์ ํ๋ค.
๋ง์ฝ ๋ฌธ์๊ฐ ๋ท๊ดํธ์ธ๋ฐ ์์๋ฆฌ์คํธ๊ฐ ๋น์ด์์ผ๋ฉด(์๊ดํธ๊ฐ ๋์จ ์ ์ด ์์ผ๋ฉด) ๋ท๊ดํธ ๋ฌธ์๋ฅผ ์ง์ด๋ค.
๋ฌธ์์ด ํ์์ด ๋๋๊ณ ์์๋ฆฌ์คํธ๋ฅผ ํ์ํ๋ฉด์ ๋จ์์๋ ์๊ดํธ๋ฅผ ์ง์ด๋ค.
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ฃผ์ด์ง ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ณํํด ์ฌ์ฉํ๊ณ ๋ฐํํ ๋๋ join() ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ฌธ์์ด๋ก ๋ณํํด์ ๋ฐํํ๋ค.
* str.join(list) : str+list(str์ผ๋ก ๋ณํ)
* ์กฐ๊ฑด๋ฌธ์์๋ ๋ฆฌ์คํธ๊ฐ ๋น์ด์์ผ๋ฉด False, ๋น์ด์์ง ์์ผ๋ฉด True ๋ฅผ ๋ฐํํ๋ค.
๋ฆฌ๋ทฐ
๋ฐํ์ ์ต๋ 98.15%, ๋ฉ๋ชจ๋ฆฌ ์ต๋ 66.40% ๊น์ง์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค.
ํ์ด์ฌ์ ๊ธฐ๋ณธ ๋ฉ์๋์ ์ฑ์ง์ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ํ๋์ฉ ์ป์ด๊ฐ๊ณ ์์ด์ ๊ธฐ๋ถ์ด ์ข๋ค.
'์๊ณ ๋ฆฌ์ฆ๋ฌธ์ ํ์ด > LeetCode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
690. Employee Importance (0) | 2022.03.23 |
---|---|
1470. Shuffle the Array (0) | 2022.03.10 |
118. Pascal's Triangle (0) | 2022.03.08 |
413. Arithmetic Slices (0) | 2022.03.04 |
804. Unique Morse Code Words (0) | 2022.02.27 |