๋ฌธ์ ์ค๋ช
๋ค์ ๊ท์น์ ์งํค๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ์ ์ํฉ๋๋ค.
- (), [], {} ๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ง์ฝ A๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, (A), [A], {A} ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด, [] ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, ([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ง์ฝ A, B๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, AB ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด, {} ์ ([]) ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, {}([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
๋๊ดํธ, ์ค๊ดํธ, ๊ทธ๋ฆฌ๊ณ ์๊ดํธ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด s๋ฅผ ์ผ์ชฝ์ผ๋ก x (0 ≤ x < (s์ ๊ธธ์ด)) ์นธ๋งํผ ํ์ ์์ผฐ์ ๋ s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ๋๊ฒ ํ๋ x์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- s์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
s | result |
"[](){}" | 3 |
"}]()[{" | 2 |
"[)(]" | 0 |
"}}}" | 0 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ค์ ํ๋ "[](){}" ๋ฅผ ํ์ ์ํจ ๋ชจ์ต์ ๋ํ๋ธ ๊ฒ์ ๋๋ค.
x | s๋ฅผ ์ผ์ชฝ์ผ๋ก x์นธ๋งํผ ํ์ | ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด |
0 | "[](){}" | O |
1 | "](){}[" | X |
2 | "(){}[]" | O |
3 | "){}[](" | X |
4 | "{}[]()" | O |
5 | "}[](){" | X |
- ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ๋๋ x๊ฐ 3๊ฐ์ด๋ฏ๋ก, 3์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ค์ ํ๋ "}]()[{" ๋ฅผ ํ์ ์ํจ ๋ชจ์ต์ ๋ํ๋ธ ๊ฒ์ ๋๋ค.
x | s๋ฅผ ์ผ์ชฝ์ผ๋ก x ๋งํผ ํ์ | ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด |
0 | "}]()[{" | X |
1 | "]()[{}" | X |
2 | "()[{}]" | O |
3 | ")[{}](" | X |
4 | "[{}]()" | O |
5 | "{}]()[" | X |
- ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ๋๋ x๊ฐ 2๊ฐ์ด๋ฏ๋ก, 2๋ฅผ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- s๋ฅผ ์ด๋ป๊ฒ ํ์ ํ๋๋ผ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก, 0์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #4
- s๋ฅผ ์ด๋ป๊ฒ ํ์ ํ๋๋ผ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก, 0์ return ํด์ผ ํฉ๋๋ค.
ํ์ด ์ฝ๋
from collections import deque
def solution(s):
rotate = len(s)
queue = deque(s)
answer = 0
for i in range(rotate):
if i != 0:
sym = queue.popleft()
queue.append(sym)
stack = []
for q in queue:
if stack:
if stack[-1] == '[' and q == ']':
stack.pop()
elif stack[-1] == '{' and q == '}':
stack.pop()
elif stack[-1] == '(' and q == ')':
stack.pop()
else:
stack.append(q)
else:
stack.append(q)
if len(stack) == 0:
answer += 1
return answer
ํ์ ์คํ์ ์ด์ฉํ์ฌ ํ์๋ค.
ํ๋ฅผ ํ์ฉํด์ ํ์ ์ O(1) ์๊ฐ๋ณต์ก๋๋ก ๊ตฌํํ๊ณ ,
์คํ์ ํ์ฉํด์ ๊ดํธ ์ฒดํฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์ ์๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฅ (level2, python) (0) | 2022.09.10 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํํ (level2, python) (0) | 2022.09.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ค์ฐ์ ์์ํ (level3, python) (0) | 2022.09.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ ์ผ๊ฐํ (level3, python) (0) | 2022.09.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] H-Index (level2, python) (0) | 2022.09.09 |