rueki
프로그래머스 LV2. 괄호회전하기 본문
728x90
반응형
올바른 괄호 문제의 확장판 느낌이다. 좌괄호인 경우에 스택 넣고 반대의 경우 pop 하는 식으로 접근하였고
좌측으로 회전하는 것은 앞 글자를 뒤로 붙이는 식으로 하였다.
고려해야할 조건
- 문자열 길이 // 2 -> 최대 만들 수 있는 괄호 개수
- 문자열 길이 홀수면 애초에 괄호 생성 불가
def solution(s):
answer = 0
if len(s) % 2 != 0:
answer = 0
return answer
else:
for x in range(0, len(s)):
if x>0:
f = list(s)[0]
s = list(s)[1:]
s.append(f)
else:
s = list(s)
cnt = 0
galho_left = []
for g in s:
if g == "[" or g == "(" or g == "{":
galho_left.append(g)
elif len(galho_left) > 0:
if galho_left[-1] == "{" and g == "}":
galho_left.pop()
cnt += 1
elif galho_left[-1] == "[" and g == "]":
galho_left.pop()
cnt += 1
elif galho_left[-1] == "(" and g == ")":
galho_left.pop()
cnt += 1
if cnt == len(s) // 2 and not galho_left:
answer += 1
galho_left = []
return answer
728x90
반응형
'프로그래머스 연습' 카테고리의 다른 글
프로그래머스 LV2. 숫자의 표현 (0) | 2022.10.08 |
---|---|
프로그래머스 LV2. 땅따먹기 (0) | 2022.10.08 |
프로그래머스 LV2. 최대값과 최솟값 (0) | 2022.10.07 |
프로그래머스 LV2 멀리뛰기(DP) (0) | 2022.10.07 |
프로그래머스 LV2. 타겟 넘버 (DFS) (0) | 2022.10.07 |
Comments