[프로그래머스] 올바른 괄호 - python 본문

코테 문제 풀이

[프로그래머스] 올바른 괄호 - python

미니모아 2022. 4. 23. 12:23
반응형

올바른 괄호

문제

'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 문자열 s의 길이 : 100,000 이하의 자연수
  • 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

풀이

stack을 이용해서 풀었다.

( = 40 , ) = 41의 아스키 코드를 갖기 때문에 올바른 괄호라면 차가 -1이 나온다.

현재 값과 스택의 Top을 비교해서 올바른 괄호일 경우 꺼내고 아닐 경우 스택에 넣는다.

올바른 괄호인 경우 stack이 빈 상태가 된다.

def solution(s):
    answer = True
    stack = []
    
    for c in s:
        if stack and ord(stack[-1]) - ord(c) == -1:
            stack.pop()
        else:
            stack.append(c)
    
    return stack == []
반응형
Comments