[백준/Python] 9012 괄호

재활용병·2024년 1월 19일
0

코딩 테스트

목록 보기
91/157

[백준/Python] 9012 괄호


풀이 코드 및 설명

import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    ps = input().strip()  # 문자열의 끝에 있는 개행 문자를 제거합니다.
    stack = []  # 각 테스트 케이스마다 새 스택을 사용합니다.
    is_valid = True  # 괄호 문자열의 유효성을 추적하는 플래그

    for char in ps:
        if char == '(':
            stack.append(char)
        elif char == ')':
            if not stack:
                is_valid = False  # 유효하지 않은 경우 플래그를 False로 설정
                break  # 더 이상 확인할 필요 없으므로 반복문 탈출
            stack.pop()
    
    # 스택이 비어 있고 유효성 플래그가 True인 경우만 "YES"
    print("YES" if not stack and is_valid else "NO")

위 문제는 괄호가 열리고 닫히는 지 확인하는 문제이다. 이는 스택을 이용하여 풀 수 있다.
'(' 여는 괄호가 나오면 스택에 추가하고 ')' 닫히는 괄호가 나오면 스택 pop()을 하여 제거한다. 만약 괄호가 남아있거나, 스택이 비어있는 상태에서 pop()을 하면 이는 VPS 가 아니다.

profile
코딩 말고 개발

0개의 댓글

관련 채용 정보