문제
https://programmers.co.kr/learn/courses/30/lessons/76502
풀이
from collections import deque
def solution(s):
cnt=0
for x in range(len(s)):
s = deque(s)
s.rotate(-1)
ss = ''.join(s)
while '[]' in ss or '{}' in ss or '()' in ss:
ss = ss.replace('[]','').replace('{}','').replace('()','')
if not ss : cnt+=1
return cnt
replace를 사용해서 풀었다.
괄호 문제의 정석은 stack이지만.. 한번 머리를 굴려서 replace로 풀어봄
deque로 바꿔 rotate를 사용하여 하나씩 이동해준다.
deque를 다시 문자열로 바꿔준다.
[], (), {} 가 없을 때 까지 [], (), {} 를 공백으로 바꿔준다.
만약 문자열의 길이가 0일 경우, cnt를 더해준다.
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #12931 - 두 배 더하기 (1) | 2022.03.28 |
---|---|
[Python] 백준 #2435 - 기상청 인턴 신현수 (0) | 2022.03.28 |
[Python] 백준 #2204 - 도비의 난독증 테스트 (2) | 2022.03.23 |
[Python] 백준 #1411 - 비슷한 단어 (0) | 2022.03.23 |
[Python] 백준 #2018 - 수들의 합 5 (0) | 2022.03.23 |