[Python] 프로그래머스 - 괄호 회전하기
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/76502?language=python3
월간 코드 챌린지(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
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Python] 프로그래머스 - 영어 끝말잇기 (0) | 2021.05.16 |
---|---|
[Python] 프로그래머스 - 예상 대진표 (0) | 2021.05.16 |
[Python] 프로그래머스 - 네트워크 (0) | 2021.05.13 |
[Python] 프로그래머스 - 타겟 넘버 (0) | 2021.05.13 |
[Python] 프로그래머스 - 구명보트 (0) | 2021.05.08 |
TAGS.