글 작성자: 망고좋아
반응형

4949, 균형잡힌 세상

📁 문제 출처

 

💡 생각

  • 스택 사용
  • 스택이 비어있을 때 ], )가 들어오면 no출력 후 break
  • 그 이후는 문제 그대로 하나씩 적어 나가면서 코드 작성.

 

🛠 나의 코드

while True:
    data = input()

    if data == '.':
        break
    stk = []

    for i in data:
        if i not in '[]()':
            continue
        elif len(stk) == 0:
            if i in '])':
                print('no')
                break
            stk.append(i)
        elif i == ']':
            if stk[-1] == '[':
                stk.pop()
            else:
                print('no')
                break
        elif i == ')':
            if stk[-1] == '(':
               stk.pop()
            else:
                print('no')
                break
        else:
            stk.append(i)
    else:
        if len(stk) == 0:
            print('yes')
        else:
            print('no')
while True:
    data = input()

    if data == '.':
        break
    stk = []

    for i in data:
        if i in '([':
            stk.append(i)
        elif i == ')':
            if len(stk) == 0 or stk[-1] == '[':
                print('no')
                break
            elif stk[-1] == '(': 
                stk.pop()
        elif i == ']':
            if len(stk) == 0 or stk[-1] == '(':
                print('no')
                break
            elif stk[-1] == '[':
                stk.pop()
    else:
        if len(stk) == 0:
            print('yes')
        else:
            print('no')

 

✔️ 배운 점 및 주의할 점

  • for-else문에서 print('no')를 추가 안 해줘서 계속 틀렸다...
  • 좀 더 꼼꼼하게 살펴볼 것
반응형