🔗 Problem Link
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)
a.rotate(-1)