jissue
SSUE's IT World
jissue
전체 방문자
오늘
어제
  • 분류 전체보기 (88)
    • CS (4)
    • 자료구조 (5)
    • 알고리즘 (30)
      • 백준 (28)
      • 프로그래머스 (2)
    • JAVA (0)
    • Spring Boot (0)
    • 가상화 (35)
      • VMware (23)
      • Docker (12)
    • sw 사관학교 정글 (13)
      • TIL (12)
    • 기타 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
jissue

SSUE's IT World

알고리즘/백준

[스택] 9012번 : 괄호

2023. 3. 9. 19:07
  • 관리
  • 글쓰기
  • 로그인
  • 로그아웃

1. 출제 문제 

 해당 문제는 스택의 가장 기본이 되는 문제인 것 같다. 두개의 괄호 ( 와 ) 로 이루어진 것을 VPS라고 하는데 주어진 모든 문자열의 VPS 여부를 확인하여 해당하면 yes, 해당 되지 않으면 no를 출력하게 된다. 

 

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

 

9012번: 괄호

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

www.acmicpc.net


2. 조건 확인

  • VPS는 '('와 ')'의 한쌍으로 이루어져야 한다.
  • '(' ')' 내에는 다른 VPS 혹은 문자 등이 들어갈 수 있다.
  • 입력 테스트 T 개가 주어지고,  길이가 2이상 50이하인 괄호 문자열이 한 줄에 주어진다.
  • VPS 조건에 해당하면 YES 아니면 NO를 출력한다.

3. 접근 방법

  • 한 줄에 주어진 문자열의 문자 하나씩 리스트에 넣는데 만약 쌍이 이루어지면 해당 괄호는 pop한다. 
  • 리스트 내에 문자가 하나도 없으면 yes 출력 하나 이상이면 no 출력한다.

4. 문제 해결

import sys
sys.stdin = open("week02/test.txt","rt")
N = int(input())

for i in range(N):
    arrs = input()
    stack = []
    for j in range(len(arrs)):
        if len(stack) != 0 and arrs[j] == ')' and stack[-1] != ')':
            stack.pop()

        else:
            stack.append(arrs[j])

    if len(stack) > 0:
        print("NO")

    else:
        print("YES")

'알고리즘 > 백준' 카테고리의 다른 글

[트리] 5639번 : 이진 검색 트리  (0) 2023.03.19
[트리] 1991번 : 트리 순회  (0) 2023.03.19
[스택] 10773번 : 제로  (0) 2023.03.09
[스택] 10828번 : 스택  (0) 2023.03.09
[문자열] 2557번 : Hello World  (0) 2023.03.03
    '알고리즘/백준' 카테고리의 다른 글
    • [트리] 1991번 : 트리 순회
    • [스택] 10773번 : 제로
    • [스택] 10828번 : 스택
    • [문자열] 2557번 : Hello World
    jissue
    jissue

    티스토리툴바