[Programmers 12909] 올바른 괄호

Updated:

문제

LV2 [Programmers 12909 - 올바른 괄호]

문제 풀이 방법

이 문제는 큐를 활용하면 쉽게 해결할 수 있다.

  1. 문자열 s를 순회하며 다음과정을 반복한다.
    1. 만약 큐의 크기가 0이라면 큐에 현재 순회하고 있는 괄호를 넣는다.
    2. 큐가 비어있지 않다면, 큐의 마지막 값이 ‘(’이면서 현재 순회하고 있는 괄호가 ‘)’이라면 짝이 맞는 괄호이므로 큐의 마지막 값을 빼준다.
    3. 괄호가 맞지 않는다면 큐에 넣어준다.
  2. 문자열을 모두 순회 후에 큐에 남아있는 괄호가 있다면 false, 비어있다면 true를 반환해준다.

풀이 코드

Python

def solution(s):
    answer = True
    queue = []
    for i in s:
        if len(queue) == 0:
            queue.append(i)
        elif queue[-1]=='(' and i==')':
            queue.pop()
        else:
            queue.append(i)
    if len(queue):
        return False
    else:
        return True

solution('()()')

댓글남기기