티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설 :

괄호로 이루어진 문자열이 주어질 때, 이 문자열이 올바른 괄호 문자열인지 판단하는 문제이다.

 

 

 

 

  • 풀이 :

stack을 사용하는 가장 대표적인 문제라고 할 수 있다. stack에 괄호를 하나씩 넣으면서 짝이 맞으면 꺼내고 아니면 넣는다. 마지막에 stack에 원소가 있다면 올바르지 않고 없다면 올바른 괄호이다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(s):
    stack = [s[0]]
    for i in s[1:]:
        if stack:
            if i == ")":
                if stack[-1== "(":
                    stack.pop()
                else:
                    return False
            else:
                stack.append(i)
        else:
            stack.append(i)
    return False if stack else True
cs
320x100
댓글
© 2022 WonSeok, All rights reserved