728x90
๋ฐ์ํ
๐ ๋ฌธ์
https://www.acmicpc.net/problem/10799
๐ ํ์ด
์ฒ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ฐ๋ก ์ดํดํ์ง ๋ชปํ๋ค.
ํ์ด๋ ์ด๋ ต์ง ์์ง๋ง ์คํ์ ์ด์ฉํด์
ํ์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ ๋ฌธ์ ์ดํด๋ ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค.
bar = list(input())
answer = 0
stack = []
for i in range(len(bar)):
# i๊ฐ "("์ธ ๊ฒฝ์ฐ
if bar[i] == "(":
stack.append(bar[i])
# i๊ฐ ")"์ธ ๊ฒฝ์ฐ
else:
# "()"๋ผ๋ฉด ๋ ์ด์ ํํธ
if bar[i-1] == "(":
stack.pop()
answer+= len(stack)
# "))"๋ผ๋ฉด ์ ๋ง๋๊ธฐ ๋ํธ๋จธ๋ฆฌ ํํ
else:
stack.pop()
answer += 1
print(answer)
์ด 3๊ฐ์ง ์กฐ๊ฑด๋ฌธ์ ๋ง๋ค์ด ์ฃผ๋ฉด ๋๋ค.
1. i๊ฐ "("์ธ ๊ฒฝ์ฐ
2. i๊ฐ ")"์ธ ๊ฒฝ์ฐ
2-1. "()"์ธ ๊ฒฝ์ฐ
2-2. "))"์ธ ๊ฒฝ์ฐ
"()"๋ ๋ ์ด์ ์ด๊ธฐ ๋๋ฌธ์ ์คํ์์ "("๋ฅผ ํ๋ ๋นผ์ฃผ๊ณ
์คํ์ ๋จ์์๋ "("๋ฅผ answer์ ๋ํด์ค๋ค.
"))"๋ผ๋ฉด ์ ๋ง๋๊ธฐ์ ๋ํธ๋จธ๋ฆฌ ํํ์ด๊ธฐ ๋๋ฌธ์
ํ๋๊ฐ ๋์ฌ๋๋ง๋ค ํ๋์ฉ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
728x90
๋ฐ์ํ
๋๊ธ