Posts [알고리즘] 프로그래머스 - 대중소 괄호 짝 맞추기
Post
Cancel

[알고리즘] 프로그래머스 - 대중소 괄호 짝 맞추기


문제

괄호 짝 맞추기
문자열 s는 (,),{,},[,] 로만 이루어져 있음
짝이 맞으면 True, 틀리면 False
s의 길이는 1이상 40이하


입출력 예시

sreturn
”[[]]”true


접근

스택의 기본 문제이다.
여는 괄호가 나오면 스택에 넣고, 닫는 괄호가 나오면 스택에서 하나 빼서 맞는 괄호쌍인지 검사한다.
딕셔너리를 이용한다면 맞는 괄호쌍인지 검사하는 코드가 간결해진다.
주의할 점은 스택이 비어있는데 닫는 괄호가 나오는 경우와 검사가 끝났는데 스택에 원소가 남아있는 경우이다.
두 경우는 모두 틀린 괄호쌍이다.

코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def solution(s):
    match = {')' : '(', '}':'{',']':'['}
    list = []
    answer = True
    for val in s:
        if val == '(' or val == '[' or val == '{':
            list.append(val)
        else:
            if not len(list):
                answer = False
                break
            top = list.pop()
            if match[val] != top:
                answer = False
                break

    if len(list):
        answer = False
    return answer


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 좌석 구매

[알고리즘] 프로그래머스 - 세 소수의 합