[BOJ] 9012. 괄호

2025. 7. 21. 14:29·BOJ

📌 문제 제목

문제 링크: BOJ 9012

🗒️ 문제 설명

VPS: 괄호의 모양이 바르게 구성된 문자열

괄호 문자열이 주어질 때, VPS인지 판별하는 프로그램

시간 제한: 1초

메모리 제한: 128MB


💡 문제 해결 아이디어

  • ps를 순회하며 여는 괄호는 스택에 추가
  • 닫는 괄호는 스택의 마지막 원소가 여는 괄호일 경우 pop
  • 순회가 끝나고 스택에 원소가 남아있으면 False, 아니면 True

⌛️ 시간 복잡도

  • O(L_1 + L_2 + ... + L_N) = O(T). T는 모든 입력 문자열의 총 길이

✅ 최종 코드

import sys
input = sys.stdin.readline

N = int(input().strip())


def isVPS(ps: str) -> bool:
    stk = []
    for b in ps:
        if b == '(':
            stk.append(b)
        else:
            if stk and stk[-1] == "(":
                stk.pop()
            else:
                return False
    return True if not stk else False


for _ in range(N):
    ps = input().strip()
    print("YES" if isVPS(ps) else "NO")

 

'BOJ' 카테고리의 다른 글

[BOJ] 2504. 괄호의 값  (0) 2025.07.21
[BOJ] 10799. 쇠막대기  (0) 2025.07.21
[BOJ] 3986. 좋은 단어  (0) 2025.07.21
[BOJ] 4949. 균형잡힌 세상  (0) 2025.07.21
[BOJ] 12852. 1로 만들기 2  (0) 2025.07.17
'BOJ' 카테고리의 다른 글
  • [BOJ] 2504. 괄호의 값
  • [BOJ] 10799. 쇠막대기
  • [BOJ] 3986. 좋은 단어
  • [BOJ] 4949. 균형잡힌 세상
rubato.dev
rubato.dev
  • rubato.dev
    rubato.dev
    rubato.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (33) N
      • BOJ (28)
      • 알고리즘 (4)
      • TIL (0)
      • Project (1) N
  • 인기 글

  • 태그

    Zelda
    스택
    투 포인터
    backtracking
    Algorithm
    BFS
    PYTHON
    Next.js
    DFS
    dp
    Project
    BOJ
    PriorityQueue
    stack
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
rubato.dev
[BOJ] 9012. 괄호
상단으로

티스토리툴바