알고리즘
프로그래머스/올바른 괄호/py
ineiw
2022. 8. 17. 21:43
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
괄호가 '(' 문자로 열려있으면 반드시 ')' 로 닫혀있는 짝이있는 문자열 일때 올바른 문자열인지 아닌지 구분하는 함수를 완성하여라
입력
문자열 s 의 길이 (1 <= len(s) <= 100000)
출력
true 또는 false
풀이
( 일때 큐로 스택에 넣어주고 )일때 스택을 팝해준다. 마지막 에서 배열의 길이가 0이되면 올바른 문자열이다.
def solution(s):
answer = False
q = []
for i in s:
if i == '(':
q.append(i) # ( 일경우 스택을 넣는다.
else:
if len(q) == 0: # 스택을 팝하기전에 길이가 이미 0이면 false
return False
elif q[-1] != '(': # 스택 맨 마지막 즉뺄값이 ( 아니면 false
return False
q.pop() # 스택을 팝한다.
if len(q) == 0: # 리스트의 길이가 0이면 True 를 리턴한다.
answer = True
return answer