-
[๋ฐฑ์ค] 11899 ๊ดํธ ๋ผ์๋ฃ๊ธฐ with PythonPS 2022. 3. 16. 18:06728x90๋ฐ์ํ
๐ BOJ 11899 ๊ดํธ ๋ผ์๋ฃ๊ธฐ
๐ก ์กฐ๊ฑด
์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด์ด ์ฃผ์ด์ง ๋, ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์๊ณผ ๋ค์ ๋ถ์ฌ์ผ ํ ๊ดํธ์ ์ต์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ .
S์ ๊ธธ์ด๋ 1 ์ด์ 50 ์ดํ์ด๋ฉฐ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ ์ฃผ์ด์ง์ง ์๋๋ค.
๊ดํธ์ด์ด๋ ์ฌ๋ ๊ดํธ โ(โ์ ๋ซ๋ ๊ดํธ โ)โ๋ก๋ง ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ๋งํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ ์๋์ ๊ฐ์ด ์ ์ํ ์ ์๋ค.
- "()"๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ ๋๋ค.
- A๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ผ๋ฉด "(A)" ์ญ์ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ ๋๋ค.
- A์ B๊ฐ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ผ๋ฉด "AB" ์ญ์ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ ๋๋ค.
๋ฌธ์์ด, ์คํ, ์๋ฃ๊ตฌ์กฐ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin g = stdin.readline().rstrip() cnt = 0 def solve(s): global cnt temp = 0 for i in range(len(s) - 1, -1, -1): if s[i] == ')': temp += 1 else: if temp - 1 < 0: cnt += 1 else: temp -= 1 if temp != 0: cnt += temp solve(g) print(cnt)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
))()((
์คํ๊ฒฐ๊ณผ
4
โจ๏ธ ๋ฌธ์ ํ์ด
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ solve() ํจ์๋ฅผ ๊ฑฐ์ณ cnt์ ์ ์ฅ๋ ๊ฐ์ ์ถ๋ ฅํ๋ค.
solve() ๋ ๋ฌธ์์ด์ ์ญ์ํํ๋ฉฐ ๋ซ๋ ๊ดํธ์ ์๋ฅผ ์ธ๋ฉฐ temp ์ ์ ์ฅํ๋ค.
๋ง์ฝ ์ํํ๋ ์ค, ๋ซ๋ ๊ดํธ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ํ temp๊ฐ 0์ผ ๊ฒฝ์ฐ, cnt + 1
๋ง์ฝ ์ํํ๋ ์ค, ๋ซ๋ ๊ดํธ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ํ temp๊ฐ 0์ด ์๋ ๊ฒฝ์ฐ, temp - 1
์ํ๊ฐ ๋๋ ํ์ temp ๊ฐ 0์ด ์๋๋ผ๋ฉด cnt ์ temp๋ฅผ ๋ํด์ค๋ค.
cnt ์ถ๋ ฅ
๐พ ๋๋์
- ํ๋ก๊ทธ๋๋จธ์ค์์ ๊ดํธ ๋ณํ ๋ฑ์ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๊ณ ์์ ํด์ ๊ทธ๋ฐ์ง, ๊ฐ๊ฐ์ ํ์ค์ด ๊นจ์ด ์๋ ๋ฏํ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1758 ์๋ฐ์ ๊ฐํธ with Python (0) 2022.03.17 [๋ฐฑ์ค] 12788 ์ 2ํ IUPC๋ ์ ๊ฐ์ต๋ ์ ์์๊น? with Python (0) 2022.03.16 [๋ฐฑ์ค] 10166 ๊ด์ค์ with Python (0) 2022.03.16 [๋ฐฑ์ค] 5698 Tautogram with Python (0) 2022.03.16 [๋ฐฑ์ค] 3187 ์์น๊ธฐ ๊ฟ with Python (0) 2022.03.14