728x90
https://school.programmers.co.kr/learn/courses/30/lessons/76502
s를 왼쪽으로 x (0 ≤ x < (s의 길이)) 칸만큼 회전시켰을 때 s가 올바른 괄호 문자열이 되게 하는 x의 개수를 return
def solution(s):
answer = 0
n=len(s)
pair={'(':')', '{':'}','[':']'}
for i in range(n): # 문자열 인덱스
stack=[]
flag=True
for j in range(n): # 왼쪽으로 회전
tmp=s[(i+j)%n]
if tmp in ['[','{','(']: # 시작괄호 : 스택에 저장
stack.append(tmp)
elif stack and pair[stack[-1]]==tmp: # 종료괄호 : 스택 마지막 값과 pair
stack.pop()
else: # 종료괄호 짝 안맞으면 false
flag=False
if not stack and flag:
answer+=1
return answer
월간코드챌린지
728x90