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
반응형
'코딩테스트 > 알고리즘&자료구조' 카테고리의 다른 글
[자료구조][파이썬으로 쉽게 풀어쓴 자료구조] 03 리스트 문제풀기 (1) | 2022.10.13 |
---|---|
[자료구조] 스택 - 중위표현식 후위표현식으로 변환 (0) | 2022.10.06 |
[자료구조] 스택 - 스택 class 구현 (0) | 2022.10.06 |
[자료구조] 리스트 - List (0) | 2022.09.27 |
[자료구조] 스택 - Stack (0) | 2022.08.23 |