728x90
๐ ๋ฐฑ์ค 10799 - ์ ๋ง๋๊ธฐ
๋ฌธ์ : ๋ฐฑ์ค 10799 - ์ ๋ง๋๊ธฐ
๐ก ๋์ ํ์ด
stack
์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ด๋, ๋ ์ด์ ์ ์ ๋ง๋๊ธฐ์ ๊ด๊ณ๋ฅผ ์ฝ๋๋ก ๊ตฌํํ๋๋ฐ ์ค๋ ๊ฑธ๋ ธ๋ค.
์ด ๋ฌธ์ ๋ฅผ ํ ๋ ์์ ๋ ์ฌ๋ฐ๋ฅธ(์ง์ด ๋ง๋) ๊ดํธ
๋ง ์ฃผ์ด์ง๋ค๋ ์ ์ ์๊ณ ํ๋ฉด ์ ๊ทผํ๊ธฐ ์ฌ์ธ ๊ฒ์ด๋ค. ๋ ํ๋์ ๊นจ์ ํ์ ์
๋ ฅ๋ฒ์๊ฐ 100,000
์ด๋ผ์ import sys
๋ฅผ ์จ์ผ ์๊ฐ์ด๊ณผ
๊ฐ ๋์ง ์๋๋ค.
- ์ฌ๋ ๊ดํธ(
(
)๋stack
์ ์ง์ด๋ฃ๋๋ค - ๋ซ๋ ๊ดํธ(
)
)๊ฐ ๋์ฌ ๋์ ๋ง๋๊ธฐ
์ธ์ง๋ ์ด์
์ธ์ง ๊ตฌ๋ถํด์ผ ํ๋๋ฐ, ์ฐ์ ๋ ์ด์ ๋ ์ธ์ ํ ์(์ฆ,ํ์ฌ index๊ฐ )
์ด๋ฉด ๋ฌด์กฐ๊ฑด์ด์ index๋ (
)์ด๋ค. ๊ทธ๋ผ ๋๋จธ์ง์ ๊ฒฝ์ฐ๋ ๋ชจ๋ ์ ๋ง๋๊ธฐ๋ก ํ๋จํ ์ ์๋ค. - ๋ ์ด์ ์ ๊ฒฝ์ฐ๋ ํ์ฌ๊น์ง ๋ค์ด์๋
len(stack)
์ ๊ตฌํ๋ฉด ๋๋ค.(์ฐธ๊ณ ๋กstack
์ ์ฌ๋ ๊ดํธ๋ง ๋ค์ด์๋ค.) - ๋ ์ด์ ๊ฐ ์๋ ๊ฒฝ์ฐ(์ ๋ง๋๊ธฐ์ธ ๊ฒฝ์ฐ)๋ ๋์
cnt
๊ฐ์ +1์ ๋ํด์ฃผ๋ฉด ๋๋ค.
728x90
์ด ๋ฌธ์ ์ ๊ด๊ฑด์ pop()
์ ์์ ์ธ๋ฐ, ๋ ์ด์ ์ ๊ฒฝ์ฐ stack[-1]
๊ฐ์ pop ํด์ฃผ๊ณ
len(stack)
์ ํด์ฃผ๊ณ , ์ ๋ง๋๊ธฐ์ ๊ฒฝ์ฐ cnt += 1
์ดํ pop
์ ํด์ฃผ๋๊ฒ์ด ์ ์ฒด ํ๋ฆ์ ํ์
ํ๊ธฐ์ ์ ์ ํ๋ค. (๋ฌผ๋ก 18, 19๋ฒ์งธ ์ฝ๋๋ฅผ ๋ค๋ฐ๊ฟ ์ ์ถํด๋ ์ ๋ต์ด๋ค.)
import sys
input = sys.stdin.readline
s = input().rstrip()
stack = []
cnt = 0
for i in range(len(s)):
if s[i] == '(':
stack.append('(')
else: # ')'
if s[i-1] == '(': # Razor
stack.pop()
cnt = cnt + len(stack)
else: # ')', ironBar
cnt += 1
stack.pop()
print(cnt)
๋ฐ์ํ
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 3986 - ์ข์ ๋จ์ด (3) | 2021.07.06 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 4949 - ๊ท ํ์กํ ์ธ์ (0) | 2021.07.05 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 12789 - ๋ํค๋ํค ๊ฐ์๋๋ฆฌ๋ฏธ (0) | 2021.06.30 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1874 - ์คํ ์์ด (0) | 2021.06.30 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10546 - ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ (0) | 2021.06.29 |
๋๊ธ