https://programmers.co.kr/learn/courses/30/lessons/60058
괄호 매칭이 제대로 되어있지 않은 값들을 제대로 변환하여 return해주는 문제이다.
스택을 이용하여 괄호매칭이 잘 되어있는지 확인하는 solution 함수를 만들어 보았다.
스택 안에 값이 있고 ')'이 들어오는 경우는 무조건 '('와 짝을 지어서 나갈 수 있다,
스택 안에 값이 없는데 ')'이 들어오는 경우는 무조건 올바른 괄호가 아니다.
def solution(p):
stack = []
for i in p:
if i == ')':
if stack:
# 스택에 값이 있다면 앞부분은 무조건 '('
# 그러므로 값을 빼준다
stack.pop()
else:
# 스택에 값이 없다면 올바른 괄호가 아님
return False
else:
stack.append(i)
return True
이 두가지의 경우를 가지고 코드를 짜보았는데,
아직 테스트를 안해봐서 이 알고리즘이 정확한 알고리즘인지는 모르겠다.
다음 게시글에서 올바르게 변환하는 코드를 작성해보려고 한다.