프로그래머스. 괄호 회전하기 파이썬 풀이

minan·2021년 6월 28일
0

프로그래머스

목록 보기
72/92

프로그래머스. 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
profile
https://github.com/minhaaan

0개의 댓글