2020. 12. 31. 01:47ใ๐ Algorithm/๐ช๐ป Python ๋ฌธ์ ํ์ด
๋ฌธ์ ์ค๋ช
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค.
์๋ฅผ ๋ค์ด
- ()() ๋๋ (())() ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค.
- )()( ๋๋ (()( ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ ๋๋ค.
'(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ฌธ์์ด s์ ๊ธธ์ด : 100,000 ์ดํ์ ์์ฐ์
- ๋ฌธ์์ด s๋ '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์์
์ฒ์์ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋งจ ์ฒ์ ๋ฌธ์์ด์ด '(' ์ธ์ง, ๋ง์ง๋ง ๋ฌธ์์ด์ด ')' ์ธ์ง, '('์ ')' ๊ฐ์๊ฐ ๊ฐ์์ง๋ฅผ ๋จผ์ ํ๋ณํด์ฃผ๊ณ
')' ๊ฐ ๋์ค๊ธฐ ์ ๊น์ง์ '('์ ๊ฐฏ์๋ฅผ ์ผ ๋ค, ')' ์ ๊ฐ์๋ฅผ ์ธ์ด '(' ์ ')' ๊ฐ์๊ฐ ๋ง์ผ๋ฉด flag์ True ํ๋ฆฌ๋ฉด False ํ๋ ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ํ์๋๋ฐ ๊ฒฐ๊ณผ๋ ํจ์จ์ฑ 1 ๋ฒ ๊ณผ, ๋ฌธ์ 5,11๋ฒ,๋ฑ์ด ํ๋ ธ์๋ค.
๊ทธ๋ฌ๋ค ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์์๋ด์ด temp์ '('์ด๋ฉด ์ ์ฅํ๊ณ
temp์ ๊ธธ์ด๊ฐ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ ์ฆ, temp์ '('๊ฐ ์กด์ฌํ๊ณ temp์ ๋งจ ๋ง์ง๋ง ์์๊ฐ '(' ์ด๋ฉด temp์์ '(' ์ ๊บผ๋ธ๋ค.
๋ง์ฝ ์ ์ํฉ๊ฐ ๋ฐ๋๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ๊ดํธ์ ์ง์ด ๋ง์ง์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ False๋ฅผ return ํด์ค๋ค.
for ๋ฌธ์ด ๋๋ ํ temp๊ฐ empty์ธ์ง ํ์ธํ์ฌ 0์ด๋ฉด True ์๋๋ฉด False๋ฅผ return ํ๋ค.
ํ์ด ๊ณผ์
def solution(s):
temp = []
for i in s:
if i == '(':
temp.append(i)
else:
if len(temp) >= 1 and temp[-1] == '(':
temp.pop()
else:
return False
if len(temp) == 0:
return True
else:
return False
'๐ Algorithm > ๐ช๐ป Python ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level2] ๋ฐฐ์ ๋น์ฉ ์ต์ํ (0) | 2021.01.03 |
---|---|
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level2 ] ์คํฌ ํธ๋ฆฌ (0) | 2021.01.03 |
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level1] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2021.01.03 |