๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/10799
๋ฌธ์ ํ์ด
sticks = input()
stack = []
count = 0
for i in range(len(sticks)):
cur = sticks[i]
# ( ๋ง๋๋ฉด stack push
if (cur == '('):
stack.append(cur)
# ์ต์๋จ์ด (์ด๊ณ ๊ทธ ๋ค์์ด) ์ด๋ฉด size ์ถ๊ฐ
# ) ๋ง๋๋ฉด 1 ์ถ๊ฐ
elif (cur == ')'):
stack.pop()
if (sticks[i - 1] == '('):
count += len(stack)
else:
count = count + 1
# print(i, ' : ', cur, ' - ', count)
print(count)
((( () () ))) ๋ฅผ ์์๋ก ๋ณด๋ฉด, ๊ฐ๊ฐ์ ๊ธฐํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
- () : ๋ง๋๊ธฐ ์๋ฆ
- ( : ๋ง๋๊ธฐ ์๋ก ์์ฑ
- ) : ๋ง๋๊ธฐ ์๋ก ์์ฑ (์ข ๋ฃ)
- ((( : 3๊ฐ ๋ง๋๊ธฐ ์๋ก ์์ฑํ๋ค.
- () : ์๋ฅด๋ฉด์ ๋ง๋๊ธฐ 3๊ฐ๋ฅผ ๋ง๋ ๋ค
- () : ๋๋ค์ ์๋ฅด๋ฉด์ ๋ง๋๊ธฐ 3๊ฐ๋ฅผ ๋ง๋ ๋ค
- ))) : 3๊ฐ ๋ง๋๊ธฐ ์๋ก ์์ฑ (=์ข ๋ฃ) ํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์๋์ ๊ฐ์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์๋ค.
๊ทธ๋์ ์ด ๋ก์ง์ ๊ท์น์ผ๋ก ํ์ด๋ณด๋ฉด, ์๋์ ๊ฐ๋ค.
1. (๋ฅผ ๋ง๋๋ฉด ์คํ์ (๋ฅผ ์ถ๊ฐํ๋ค.
2. )๋ฅผ ๋ง๋๊ณ ์คํ์ ์ต์๋จ์ด (์ด์์ผ๋ฉด, ์ด๋ฉด ์คํ์ ํฌ๊ธฐ๋งํผ ๊ฐฏ์์ ์ถ๊ฐํ๋ค.
3. )๋ฅผ ๋ง๋๋ฉด, ๊ฐฏ์์ 1์ ์ถ๊ฐํ๋ค.
'๊ฐ๋ฐ > ๐ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
baekjoon. ํฌ๊ฒ ๋ง๋ค๊ธฐ (2812) [python][Gold III] (0) | 2023.02.22 |
---|---|
baekjoon. ํ2 (18258) [python][Silver IV] (0) | 2023.02.20 |
baekjoon. ์คํ (10828) [python][Silver IV] (0) | 2023.01.16 |
baekjoon. ํ์ ์ด๋ฐฅ (2531) | hashmap์ฌ์ฉ [java] (0) | 2022.10.17 |
baekjoon. ํํฐ (0) | 2022.10.07 |