반응형
def solution(s):
answer=0
n=len(s)
for i in range(n):
stack=[]
# 괄호 문자열을 회전시키면서 참조
for j in range(n):
c = [s(i + j) % n]
if c in '([{': # 열린 괄호는 푸시
stack.append(c)
else:
if not stack: # 짝이 맞지 않는 경우
break
# 닫힌 괄호는 스택의 top과 짝이 맞는지 비교
if c == ")" and stack[-1] == "(":
stack.pop()
elif c == "]" and stack[-1] == "[":
stack.pop()
elif c == "}" and stack[-1] == "{":
stack.pop()
else:
break
else:
if not stack:
answer += 1
return answer
- 스택으로 짝을 찾으면서 횟수를 누적한다.
반응형
'코딩 테스트 > Python' 카테고리의 다른 글
| 문제12 [스택] 주식 가격 (0) | 2025.12.04 |
|---|---|
| 문제11 [스택] 짝지어 제거하기 (0) | 2025.12.04 |
| 문제09 [스택] 10진수를 2진수로 변환하기 (0) | 2025.12.01 |
| 문제08 [스택] 괄호 짝 맞추기 (0) | 2025.12.01 |
| 문제07 [배열] 방문 길이 (0) | 2025.12.01 |