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
'알고리즘' 카테고리의 다른 글
프로그래머스/문자열 압축/py (0) | 2022.08.21 |
---|---|
프로그래머스/주차 요금 계산/py (1) | 2022.08.20 |
프로그래머스/신규 아이디 추천/py (0) | 2022.08.17 |
프로그래머스/실패율/py (0) | 2022.08.15 |
프로그래머스/직사각형 별찍기/cpp (0) | 2022.08.14 |