문제
https://school.programmers.co.kr/learn/courses/30/lessons/76502
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
문자열을 이용한 문제를 몇번 풀어보았다면 쉽게 풀리는 문제였다. 나는 다음과 같이 문제를 접근했다.
1. 문자열을 회전 시켜 새로운 문자열을 만든다.
2. 새로운 문자열에 대해서 올바른 괄호 문자열인지 판별한다
2-1. 올바른 괄호 문자열일 경우 answer+1를 해준다.
2-2. 올바른 문자열이 아닐경우 넘어간다.
코드
def solution(s):
answer = 0
for i in range(len(s)):
if isCorrect(s):
answer += 1
c = s[0]
s = s[1:]+ c
return answer
def isCorrect(s):
if len(s) == 1:
return False
st = []
st.append(s[0])
s = s[1:]
for element in iter(s):
if st and st[-1] == '(' and element == ')':
st.pop()
elif st and st[-1] == '[' and element == ']':
st.pop()
elif st and st[-1] == '{' and element == '}':
st.pop()
else:
st.append(element)
if st: return False
elif not st: return True
'프로그래머스' 카테고리의 다른 글
[프로그래머스] H-Index (파이썬) (0) | 2023.04.04 |
---|---|
[프로그래머스] 멀리 뛰기 (파이썬) (0) | 2023.04.04 |
[프로그래머스] N개의 최소공배수 (파이썬) (0) | 2023.04.03 |
[프로그래머스] 예상 대진표 (파이썬) (0) | 2023.04.02 |
[프로그래머스] 구명보트 (파이썬) (0) | 2023.03.31 |