티스토리 뷰

728x90
반응형

https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

내 코드

n = int(input())

for i in range(n):
    stack = []
    line = input()
    for item in line:
        if stack:
            if item =='(':
            
                stack.append(item)
                
            elif item==')':
                if stack[-1]=='(':
                    stack.pop()
                    
                else:
                    stack.append(item)
                
        else:
            stack.append(item)

    if stack:
        print("NO")
    else:
        print("YES")

 

 

다른 사람 코드

import sys

T = int(sys.stdin.readline())


for _ in range(T):
    D = sys.stdin.readline().strip()
    stack = []
    for p in D:
        if p == '(':
            stack.append(p)
        else:
            if len(stack):
                stack.pop()
            else:
                print('NO')
                break
    else:
        if stack:
            print('NO')
        else:
            print('YES')

나는 처음에 스택이 비었는지 여부를 체크했는데 이 분은 ')' 가 들어왔을 때 len(stack)으로 스택이 비었는지를 체크했다.

그리고 스택이 비었으면 '('가 없어 짝이 맞지 않는 것이 바로 나오므로 바로 print("NO")를 해주어 문자열의 끝까지 돈 후 출력한 내 코드보다 더 효율적인 코드 같다. 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함