프로그래머스. Level 2. 괄호 회전하기 파이썬 풀이
문제링크 https://programmers.co.kr/learn/courses/30/lessons/76502
d = {
')': '(',
']': '[',
'}': '{'
}
# 문자열이 올바른 괄호 문자열인지 판단하는 함수
def check(s):
stack = []
for c in s:
if c == '{' or c == '[' or c == '(':
stack.append(c)
else:
if stack and stack.pop() == d[c]:
pass
else:
return False
# 올바른 괄호 문자열이라면 True 리턴
return True
def solution(s):
answer = 0
# 괄호 문자열의 길이가 홀수라면 어떻게하던 올바른 문자열을 만들 수 없으니 0리턴
if len(s) % 2 == 1:
return 0
# 문자열을 리스트로 만들어 pop과 append를 사용
s = list(s)
for i in range(len(s)):
# 위에서 만든 check 함수에 문자열을 넣어 True가 온다면 결과값 +1
if check(s) == True:
answer += 1
# 첫번째 문자 마지막으로 보냄
s.append(s.pop(0))
return answer