def solution(s):
s = list(s)
global answer
answer = 0
def check(brackets):
dic = {
'}' : '{',
']' : '[',
')' : '('
}
global answer
lst = []
for i in brackets:
if len(lst) == 0:
lst.append(i)
else:
if i in dic.keys():
if dic[i] == lst[-1]:
lst.pop()
else:
lst.append(i)
if not lst:
answer += 1
return
for i in range(len(s)):
a = s.pop(0)
s.append(a)
check(s)
return answer
괄호 배열을 한칸씩 회전하면서 모든 수를 비교한다.
빈 배열 안에 올바른 괄호를 쌓게 되는데 만약 모든 괄호가 올바른 괄호라면 배열이 비어있게 되므로 그런 경우에는 정답을 +1 해준다.
'Programmers' 카테고리의 다른 글
[프로그래머스 / 파이썬 풀이] 행렬의 곱셈 (0) | 2023.02.17 |
---|---|
[프로그래머스 / 파이썬 풀이] 예상 대진표 (0) | 2023.02.16 |
[프로그래머스 / 파이썬 풀이] 영어 끝말잇기 (0) | 2023.02.15 |
[프로그래머스 / 파이썬 풀이] 이진 변환 반복하기 (0) | 2023.02.14 |
[프로그래머스 / 파이썬 풀이] 멀리 뛰기 (0) | 2023.02.14 |