stack써서 푸는 문제. stack하나로도 가능한데..
def bracket_inspection(s):
dic = {')':0, '}':0,']':0, '(':0, '{':0,'[':0}
stack1 = []
stack2 = []
for chr in s:
if chr in dic:
dic[chr] += 1
stack1.append(chr)
if dic[')'] != dic['('] or dic['}'] != dic['{'] or dic[']'] != dic['[']:
return 0
while stack1:
check = stack1.pop()
if check == ')' or check == '}' or check==']':
stack2.append(check)
else:
if check =='(':
if stack2[-1]==')':
stack2.pop()
else:
return 0
elif check=='{':
if stack2[-1]=='}':
stack2.pop()
else:
return 0
elif check=='[':
if stack2[-1]==']':
stack2.pop()
else:
return 0
return 1
'practivceAlgorithm > swexpertacademy' 카테고리의 다른 글
[SWEA][Python] 4873 반복문자 지우기 (0) | 2021.08.15 |
---|---|
[SWEA][Python] 4871 그래프경로 (0) | 2021.08.15 |
[SWEA][Python] 4864 문자열 비교 (0) | 2021.08.15 |
[SWEA][Python] 4861 회문 (0) | 2021.08.15 |
[SWEA][Python] 4865 글자수 (0) | 2021.08.15 |