백준 문제풀이 4949 균형잡힌 세상

Kim. K.S·2022년 2월 28일
0

boj 4949 : 균형잡힌 세상

문제 주소: https://www.acmicpc.net/problem/4949

난이도: silver 4

1.문제설명

  • 대표적인 valid parentheses문제이다.
  • 괄호의 밸런스가 맞으면된다
    • '('는 ')'과 짝을 이루고
    • '['는 ']'과 짝을 이룬다
  • .이 입력되면 종료한다.

2.문제해결 아이디어.

  • stack 자료구조를 이용해서 풀면된다.

3.문제접근법

  • 괄호를 여는 기호를 만나면 stack에 append하고
  • 괄호를 닫는 기호를 만나면 stack에서 pop한 기호와 짝이 맞는지 확인한다.

4.특별히 참고할 사항

  • stack자료구조를 알면 쉽게 풀수있을꺼같다.

5.코드구현

stack = []
while True:
    query = input()
    if query == '.':
        break
    paren_dict = {'(': ')', '[': ']'}
    for i in range(len(query)):
        if query[i] == '.':
            if len(stack) == 0:
                print("yes")
                stack = []
            else:
                print("no")
                stack = []
        if query[i] in ["(", "["]:
            stack.append(query[i])
        elif query[i] in [")", "]"]:
            if len(stack) >= 1:
                temp = stack.pop()
                if paren_dict[temp] != query[i]:
                    print("no")
                    stack = []
                    break
            else:
                print("no")
                stack = []
                break
profile
시원한 맥주, 음악, 야구, 사진찍기를 좋아합니다.

0개의 댓글