[Python] 프로그래머스 - 괄호 회전하기

728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/76502?language=python3 

 

코딩테스트 연습 - 괄호 회전하기

 

programmers.co.kr

월간 코드 챌린지(4월)에 출제된 문제이다.

 

# check함수는 올바른 괄호인지 판별하는 함수이다. 올바른 괄호인지 판단하는 문제는 스택을 공부할 때

  대표적으로 푸는 문제라 함수를 짜는데 어려움은 없다.

 

# input값을 deque에 넣고 ip의 길이만큼 rotate(-1)을 해준다. (왼쪽으로 한칸씩 밈)

   만약 check(ip)가 True이면 올바른 괄호이므로 answer에 1을 증가시켜준다.

from collections import deque
def solution(ip):
    def check(s):
        stack = []
        for c in s:
            if c == '(' or c == '{' or c == '[':
                stack.append(c)
            else:
                if not stack:
                    return False
                x = stack.pop()
                if c == ')' and x != '(':
                    return False
                elif c == ')' and x != '(':
                    return False
                elif c == '}' and x != '{':
                    return False
        return len(stack) == 0
    
    ip = deque(ip)
    answer = 0
    for x in range(len(ip)):
        ip.rotate(-1)
        if check(ip):
            answer += 1
    return answer
728x90
반응형
TAGS.

Comments