새소식

⌨️ Algorithms/프로그래머스

[Python] 프로그래머스 Lv2_올바른 괄호

2022. 8. 26. 21:40

  • -

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

"""
입출력 예시)

s = "()()" -> true
s = "(())()" -> true
s = ")()(" -> false
s = "(()(" -> false
"""

def solution(s):
    answer = True
    
    s_list = list(s)
    
    for i in range(len(s_list)):
        if s_list[0] == '(' and s_list[len(s_list)-1] == ')':
            answer = True
        else:
            answer = False
    
    return answer

 

-> 이렇게 했더니 테스트 케이스 3개, 효율성 테스트에서 하나를 실패했다. 

찾아보니 스택을 이용해서 풀어야했음

 

 

  • 정답 코드 
def solution(s):
    stack = []
    for i in s:
        if i == "(": # '(' 문자로 괄호가 열린 경우
          stack.append(i) # stack 리스트에 해당 문자 추가
        else: # ')' 문자로 괄호가 닫힌 경우
            if stack == []: # 꺼낼 문자가 없다면 
              return False # False 리턴
            else:
              stack.pop() # stack 리스트의 '(' 문자를 하나 꺼냄
    return len(stack) == 0 # stack 리스트가 빈 배열이라면 True, 그렇지 않다면 False를 리턴

 

 

 

 

참고)

 

https://developer-ny.tistory.com/19?category=831663

 

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

문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올

developer-ny.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!