[Programmers] Level 2. 괄호 회전하기

Seo Seung Woo·2022년 9월 19일
0
post-thumbnail

Level 2. 괄호 회전하기


❔Thinking

  • 괄호로 이루어진 문자열을 한 칸씩 밀어가며 올바른 괄호 사용인지 확인한다.

💻Solution

from collections import deque
def isBracketCorrect(s):
    bracket_dict = {']':'[', '}':'{', ')':'('}
    check_list = []
    for char in s:
        if char in bracket_dict.keys():
            if len(check_list) <= 0 or check_list[-1] != bracket_dict[char]:
                return False
            else:
                check_list.pop()
        else:
            check_list.append(char)
    return True if len(check_list) == 0 else False
                
        
def solution(s):
    answer = 0
    q = deque(s)
    for _ in range(len(s)):
        q.rotate(-1)
        if isBracketCorrect(q) is True:
            answer += 1
    return 

🗝️keypoint

  • 괄호를 한칸씩 미는 작업을 deque의 rotate를 활용하면 빠르게 해결할 수 있다. (원본이 변경된다.)
    from collections import deque
    a = deque([1,2,3,4,5])
    a.rotate(1) # [5,1,2,3,4]
    a.rotate(-1) # [2,3,4,5,1]
profile
Code for people

0개의 댓글