티스토리 뷰

문제 링크

 

4949번: 균형잡힌 세상

각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에

www.acmicpc.net

문제 풀이

while 1:
    stack = []
    str = input()

    if str == ".":
        break

    for letter in str:
        if letter == "[" or letter == "(":
            stack.append(letter)

        if letter == "]":
            if len(stack) != 0 and stack[-1] == "[":
                stack.pop()
            else:
                stack.append(letter)

        if letter == ")":
            if len(stack) != 0 and stack[-1] == "(":
                stack.pop()
            else:
                stack.append(letter)

    if len(stack) == 0:
        print("yes")
    else:
        print("no")

4949 입출력 예시

*key point: 9012번 문제와 유사하나 괄호의 종류가 늘어났다. 스택과 조건문을 활용해서 정상적으로 같은 종류의 괄호가 닫힐 때를 찾는다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함