๐กsolutions )
๐ฌ ์ด๋ฒ ๋ฌธ์ ๋ ๊ตฌํ ๋ฌธ์ ๋ก ์๋ฃ ๊ตฌ์กฐ ์คํ(stack)์ ํ์ฉํด์ ํด๊ฒฐํ์๋ค.
๐ฌ ์ฒซ ๋ฒ์งธ if ์กฐ๊ฑด๋ฌธ์ ์ ๋ ฅ๊ฐ์ด ')' ๋๋ ']'๋ก ์์ํ๋ ๊ฒฝ์ฐ๊ฐ -> ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๊ดํธ์ด๋ก ํ๋ณํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ์ฒ์์ ์ด ์กฐ๊ฑด๋ฌธ์ ๋ฌ์ง ์์์ ์ฑ์ ์ค๊ฐ์ ์คํจํ๋ค.
๐ฌ sys๋ชจ๋์ exit()๋ ํ๋ก๊ทธ๋จ ์ข ๋ฃํจ์์ด๋ค. -> ๋ฐ๋ผ์ ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๊ดํธ์ด์ผ ๋๋ print(0)์ ํด์ฃผ๊ณ exit(0)๋ก ํด๋น ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์ข ๋ฃํ๋ค.
โ sys๋ชจ๋์ exit() ์ข
๋ฃํจ์์ ๋ํ ์ค๋ช
๐ ์ฐธ๊ณ ๋ธ๋ก๊ทธ |
๐ฌ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ธ์ง ํ๋ณํ๋ ๊ฒ์ ์ด๋ ต์ง ์์์ผ๋, ๊ดํธ์ด์ ๊ฐ์ ๊ตฌํ๋ ๋ก์ง์ ๊ตฌํํ ๋ ์ด๋ ค์์ ๋๊ผ๋ค. ๋ซ๋ ๊ดํธ๊ฐ ๋์ค๋ฉด ๊ทธ ์ด์ ์ stack ๋งจ ๋(top)์ ์ซ์๊ฐ ์๋์ง ํ์ธํ๊ณ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ซ์๋ฅผ ๋ํ์ฌ tmp๊ฐ์ ์ ์ฅํ๋ค. -> ๊ดํธ์ ๋ฐ๋ผ tmp์ ๊ณฑํ๊ธฐ 2, ๊ณฑํ๊ธฐ 3์ ํด์ค ๊ฐ์ ๋ค์ stack์ ๋ฃ๋๋ค.
๐ฌ ๋ง์ง๋ง try๋ฌธ์์ sum์ ๊ตฌํ๋๋ฐ stack์ ๊ดํธ๊ฐ ์์ง ๋จ์ ์๋ค๋ฉด ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๊ดํธ์ด์ด๋ฏ๋ก ์๋ฌ๊ฐ ๋๊ธฐ๋๋ฌธ์ except๋ฌธ์ด ์คํ๋๋ค.
๐จ๐ปcode )
brackets = input()
s = []
chk = 0
for i in brackets:
if not s:
if i in [')', ']']:
print(0)
exit(0)
if i == ')':
tmp = 0
while s:
top = s.pop()
if top == '(':
if tmp == 0:
s.append(2)
else:
s.append(tmp*2)
break
elif top == '[':
print(0)
exit(0)
else:
tmp += int(top)
elif i == ']':
tmp = 0
while s:
top = s.pop()
if top == '[':
if tmp == 0:
s.append(3)
else:
s.append(tmp*3)
break
elif top == '(':
print(0)
exit(0)
else:
tmp += int(top)
else:
s.append(i)
try:
print(sum(s))
except:
print(0)
๐description )
๋ฌธ์
4๊ฐ์ ๊ธฐํธ ‘(’, ‘)’, ‘[’, ‘]’๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด์ง๋ ๊ดํธ์ด ์ค์์ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค.
- ํ ์์ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ง ‘()’์ ‘[]’๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ค.
- ๋ง์ผ X๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ฉด ‘(X)’์ด๋ ‘[X]’๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ๋๋ค.
- X์ Y ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ผ๋ฉด ์ด๋ค์ ๊ฒฐํฉํ XY๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ๋๋ค.
์๋ฅผ ๋ค์ด ‘(()[[]])’๋ ‘(())[][]’ ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด์ง๋ง ‘([)]’ ๋ ‘(()()[]’ ์ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ์๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ค ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด X์ ๋ํ์ฌ ๊ทธ ๊ดํธ์ด์ ๊ฐ(๊ดํธ๊ฐ)์ ์๋์ ๊ฐ์ด ์ ์ํ๊ณ ๊ฐ(X)๋ก ํ์ํ๋ค.
- ‘()’ ์ธ ๊ดํธ์ด์ ๊ฐ์ 2์ด๋ค.
- ‘[]’ ์ธ ๊ดํธ์ด์ ๊ฐ์ 3์ด๋ค.
- ‘(X)’ ์ ๊ดํธ๊ฐ์ 2×๊ฐ(X) ์ผ๋ก ๊ณ์ฐ๋๋ค.
- ‘[X]’ ์ ๊ดํธ๊ฐ์ 3×๊ฐ(X) ์ผ๋ก ๊ณ์ฐ๋๋ค.
- ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด X์ Y๊ฐ ๊ฒฐํฉ๋ XY์ ๊ดํธ๊ฐ์ ๊ฐ(XY)= ๊ฐ(X)+๊ฐ(Y) ๋ก ๊ณ์ฐ๋๋ค.
์๋ฅผ ๋ค์ด ‘(()[[]])([])’ ์ ๊ดํธ๊ฐ์ ๊ตฌํด๋ณด์. ‘()[[]]’ ์ ๊ดํธ๊ฐ์ด 2 + 3×3=11 ์ด๋ฏ๋ก ‘(()[[]])’์ ๊ดํธ๊ฐ์ 2×11=22 ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ‘([])’์ ๊ฐ์ 2×3=6 ์ด๋ฏ๋ก ์ ์ฒด ๊ดํธ์ด์ ๊ฐ์ 22 + 6 = 28 ์ด๋ค.
์ฌ๋ฌ๋ถ์ด ํ์ด์ผ ํ ๋ฌธ์ ๋ ์ฃผ์ด์ง ๊ดํธ์ด์ ์ฝ๊ณ ๊ทธ ๊ดํธ๊ฐ์ ์์์ ์ ์ํ๋๋ก ๊ณ์ฐํ์ฌ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๊ดํธ์ด์ ๋ํ๋ด๋ ๋ฌธ์์ด(์คํธ๋ง)์ด ์ฃผ์ด์ง๋ค. ๋จ ๊ทธ ๊ธธ์ด๋ 1 ์ด์, 30 ์ดํ์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ทธ ๊ดํธ์ด์ ๊ฐ์ ๋ํ๋ด๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ผ ์ ๋ ฅ์ด ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๊ดํธ์ด์ด๋ฉด ๋ฐ๋์ 0์ ์ถ๋ ฅํด์ผ ํ๋ค.