[프로그래머스] lv.2 올바른 괄호

Jenny·2023년 8월 31일
0

ProblemSolving

목록 보기
12/14
post-thumbnail

문제

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

정답

def solution(s):
    stack = []
    answer = True

    for i in s:
        if i == "(":
            stack.append(i)
        else:
            if stack == []: # 1. (보다 )가 먼저 나온 경우 False
                answer = False
                break
            else:
                stack.pop()
    if stack != []: # 2. ( , )의 개수가 맞지 않은 경우 False
        answer = False
    return answer

풀이

Queue로도 해결할 수 있다.

[아래는 Queue로 접근한 풀이]

from collections import deque
 
def solution(s):
    queue = deque()
    for i in s:
        if i == "(":
            queue.append("(")
        else:
            if len(queue) != 0:
                queue.pop()
            else:
                return False
    if len(queue) != 0:
        return False
    else:
        return True
profile
Developer로의 여정

0개의 댓글