코딩테스트/알고리즘&자료구조
[자료구조] 스택 - 괄호 검사 알고리즘
내만
2022. 10. 6. 20:53
728x90
반응형
728x90
🙆♂️ 괄호 검사 알고리즘
"""
괄호 검사 알고리즘
"""
def checkB(string):
stack = []
for i in string:
if i in ['(','{','[']:
stack.append(i)
elif i in [')','}',']']:
if len(stack) == 0:
return "Wrong String!"
else:
if ((
stack[-1] == '(' and i==')'
or stack[-1] == '{' and i=='}'
or stack[-1] == '[' and i==']'
)):
stack.pop(-1)
else:
return "Wrong String!"
if len(stack) != 0:
return "Wrong String!"
else:
return "Good String!"
string = input("input string : ")
ans = checkB(string)
print(ans)
스택을 이용해서 괄호 검사 알고리즘을 만들 수 있습니다.
소,중,대 여는 괄호가 입력되면 if문으로 감지하여 stack에 넣고
소,중,대 닫는 괄호가 입력되면 스택이 비어있나 검사를 한 후
해당 괄호와 일치한다면 스택의 최상단
즉, 리스트로 치면 최후단 값을 지워서 괄호 하나가 정상적으로 닫혔음을 알려줍니다.
위 과정 중 맞지 않는 결과가 나온다면 잘못된 괄호식임을 인지하고 Wrong String!을 출력합니다!
728x90
반응형