[Programmers] 괄호변환(1차)

hodu·2022년 10월 17일
0

algorithm

목록 보기
12/27

https://programmers.co.kr/learn/courses/30/lessons/60058

괄호 매칭이 제대로 되어있지 않은 값들을 제대로 변환하여 return해주는 문제이다.
스택을 이용하여 괄호매칭이 잘 되어있는지 확인하는 solution 함수를 만들어 보았다.

  1. 스택 안에 값이 있고 ')'이 들어오는 경우는 무조건 '('와 짝을 지어서 나갈 수 있다,

  2. 스택 안에 값이 없는데 ')'이 들어오는 경우는 무조건 올바른 괄호가 아니다.

def solution(p):
    stack = []
    for i in p:
        if i == ')':
            if stack:
                # 스택에 값이 있다면 앞부분은 무조건 '('
                # 그러므로 값을 빼준다
                stack.pop()
            else:
                # 스택에 값이 없다면 올바른 괄호가 아님
                return False
        else:
            stack.append(i)

    return True

이 두가지의 경우를 가지고 코드를 짜보았는데,
아직 테스트를 안해봐서 이 알고리즘이 정확한 알고리즘인지는 모르겠다.

다음 게시글에서 올바르게 변환하는 코드를 작성해보려고 한다.

profile
안녕 세계!

0개의 댓글