알고리즘 풀이/프로그래머스

[Level 2] 올바른 괄호

mhko411 2021. 2. 21. 23:39
728x90

programmers.co.kr/learn/courses/30/lessons/12909

 

코딩테스트 연습 - 올바른 괄호

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

programmers.co.kr

문제요약

입력되는 괄호들의 쌍이 맞는지 확인을 한다.


접근

스택을 이용해 여는 괄호가 들어오면 스택에 넣고 닫는 괄호가 들어오면 POP을 한다.

이때 스택이 비어있는데 닫는괄호가 들어오면 False를 반환하고 모든 문자열을 검색했는데 스택이 비어있지 않는다면 False를 반환한다.

 

구현

def solution(s):
    answer = True
    stack = []
    for idx in range(len(s)):
        if not stack and s[idx] == ')':
            return False
        if s[idx] == '(':
            stack.append(s[idx])
        else:
            stack.pop()
    
    if stack:
        return False   
    
    return True

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level 2] 네트워크  (0) 2021.02.22
[Level 2] 땅따먹기  (0) 2021.02.22
[Level 2] 더 맵게  (0) 2021.02.21
[Level 2] 가장 큰 수  (0) 2021.02.20
[Level 2] 구명보트  (0) 2021.02.20