오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-10 00:03
관리 메뉴

우노

[Implementation] 프로그래머스 “올바른 괄호” Python 풀이 본문

Algorithm/Implementation

[Implementation] 프로그래머스 “올바른 괄호” Python 풀이

운호(Noah) 2022. 10. 24. 16:37

문제 링크

문제 설명

  • 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다.
    • 예를 들어, "()()" 또는 "(())()" 는 올바른 괄호입니다.
    • ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
  • '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때,
  • 문자열 s가 올바른 괄호이면 true를 return 하고,
  • 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.

제한사항

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

풀이

  • 세부 풀이는 아래 코드에 설명되어있습니다.

코드

def solution(p):

    # 왼쪽 괄호의 개수
    count = 0

    for i in range(len(p)):

        # '('라면
        if (p[i] == '('):
            count += 1

        # ')'라면
        else:

            # 왼쪽 괄호가 없는 상태에서 오른쪽 괄호가 등장했을 경우
            if (count == 0):
                return False
            count -= 1

        # 모든 문자를 탐색했는데, 왼쪽 괄호가 닫히지 않았을 경우
        if (i == len(p) - 1 and count >= 1):
            return False

    return True
Comments