베지밀

[Python] 프로그래머스 올바른 괄호 (스택/큐) 본문

개인 공부/코딩테스트

[Python] 프로그래머스 올바른 괄호 (스택/큐)

vegimil 2024. 7. 24. 12:44

 

스택을 이용한 문제

 

'('면 push하고 ')'하면 pop하는 원리를 이용했다.

 

첫 시도에는 Stack이라는 클래스를 생성해서 만드려고 했는데,

클래스 정의하는 걸 안해봐서 자꾸 다른 답이 나왔다 😂

 

 

결국 리스트로 스택 구현해서 class 없이 풀었다.

 

 

1. '('면 리스트에 append

2. ')'면 리스트에서 마지막 값 pop

3. pop할 땐 스택의 길이 검사 (len==0?)

4. for문으로 문자열 다 돌고 나서 남은 스택 길이 검사 (len!=0)

 

 

 

 

풀이 코드

def solution(s):
    stack = []
    
    for i in s:
        if i == "(":
            stack.append(i)
        else:
            if len(stack) == 0:
                return False
            else:
                stack.pop()
    
    if len(stack) != 0:
        return False
    
    return True