코딩테스트 준비/백준

[백준] 9012번 괄호 - Python(파이썬)

youjin86 2021. 7. 21. 00:00

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

 

9012번: 괄호

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

www.acmicpc.net

 

문제

 

접근법

 

다음과 같은 조건들만 성립하는 지를 체크하면 될 것이라 판단하였다.

  1. 괄호를 열고 닫는 개수가 같아야 함.
  2. 열 땐 +1, 닫을 땐 -1
  3. 체크를 0으로 시작해 0으로 끝남을 확인
  4. 단, 닫음을 2번으로 하여 -1로 넘어가게 되면 한 쌍이 안됨으로 간주하고 바로 체크 종료

#알아야 할 중요 코드 개념#

sys.stdin.readline().strip()

좌우 공백 제거

sys.stdin.readline().rstrip()

오른쪽 끝부터 공백 제거

sys.stdin.readline().lstrip()

왼쪽 끝부터 공백 제거

list(sys.stdin.readline().strip())

좌우 공백 제거 후, 각 문자를 리스트로 저장

 

21.02.09 코드

import sys

T=int(input())

for i in range(T):
    check=0
    s=sys.stdin.readline().strip()
    for j in range(len(s)):
        if s[j]=='(':
            check+=1
        else:
            check-=1

        if check==-1:
            answer='NO'
            break
        
    if check==0 and s[len(s)-1]==')':
        answer='YES'
    else:
        answer='NO'
    print(answer)

 

 

21.07.16 코드

import sys

T=int(input())

for i in range(T):
    line=list(sys.stdin.readline().strip())
    ck=0

    for j in line:
        if j=='(':
            ck+=1
        else:
            ck-=1

        if ck==-1:
            break

        
    if ck==0:
        print('YES')
    else:
        print('NO')