깃허브:
https://programmers.co.kr/learn/courses/30/lessons/76502?language=python3#
올바른 괄호 풀이:
이 문제를 풀려면 흔하게 나오는 스택을 이용한 올바른 괄호와 관련된 문제를 풀어보면 좋다.
다시 돌아올 때 까지 총 s의 길이만큼 문자 하나씩 회전을 시키고 한번 회전을 시킬 때마다 올바른 괄호인지 체크해주면 된다.
알고리즘 풀이 방식:
1. 문자 하나를 왼쪽으로 회전시킨다.
2. 올바른 괄호인지 체크해준다.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def solution(s):
answer = 0
for i in range(len(s)):
stack = []
s += s[0]
s = s[1:]
torf = True
for j in s:
if j == '{' or j=='(' or j=='[':
stack.append(j)
else:
if stack == []: #오른쪽 괄호로 시작할 때
torf = False
break
if stack[-1]=='{' and j=='}' or stack[-1]=='(' and j==')' or stack[-1]=='[' and j==']':
stack.pop()
else: #왼쪽 괄호만 남아있을 때
torf = False
break
if stack == [] and torf == True:
answer += 1
return answer
|
cs |
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 2단계 - 모음사전 (Python) (2) | 2022.01.28 |
---|---|
프로그래머스 2단계 - 후보키 (Python) (0) | 2021.12.01 |
프로그래머스 2단계 - 조이스틱 (Python) (0) | 2021.11.14 |
프로그래머스 2단계 - 행렬 테두리 회전하기(Python) (0) | 2021.09.19 |
프로그래머스 2단계 - 실패율(Java) (0) | 2021.09.05 |