[Baekjoon] 4949. 균형잡힌 세상

mj·2024년 5월 5일
0

코딩테스트문제

목록 보기
10/50

균형잡힌 세상
자료구조 / 문자열/ 스택

🔍 나의 코드

while True:
    stack = []
    result = "yes"

    str = input()

    if str == '.': break
    else:

        for i in str:
            if i=='(' or i=='[':
                stack.append(i)
            elif i==')' or i==']':
                if stack: #스택이 비어있지 않으면
                    temp = stack.pop()

                    if temp=='(': temp=')'
                    elif temp=='[': temp=']'

                    if i == temp:
                        continue
                    else:
                        result = "no"
                        break
                else:
                    result = "no"
                    break
                
        if stack: #스택이 비어있지 않으면
            result = "no"
            
        print(result)

# 나의 코드
if i=='(' or i=='[':
# 다른 코드
if ch in '([':

🔍 다른 코드

from sys import stdin


def validate_parens(sentence: str) -> str:
    left_parens: list = []
    for ch in sentence:
        if ch in '([':
            left_parens.append(ch)
        elif ch == ')':
            if not left_parens or left_parens.pop() != '(':
                return 'no'
        elif ch == ']':
            if not left_parens or left_parens.pop() != '[':
                return 'no'

    return 'yes' if not left_parens else 'no'


def sol(sentences: list) -> str:
    return '\n'.join([validate_parens(sentence) for sentence in sentences])

print(sol(stdin.readlines()[:-1]))

🌀 Stack 스택

stack = []
stack.append(1) 
print(stack.pop()) #1
profile
일단 할 수 있는걸 하자.

0개의 댓글