본문 바로가기

study/알고리즘 풀기

백준 9012번 괄호

일단 본인 코딩 못하니까 절대 참고하지말 것  

 

 

 

 

 

문제는 간단하다 그냥 왼쪽의 개수가 오른쪽보다 적어지면 안됨 + 마지막에 양쪽 개수 똑같아야 됨

 

이걸로 풀면

lst = []

n =int(input())
for i in range(0,n):
    lst.append(str(input()))



def fun(lst):
    str1 = ''.join(lst)
    left = 0
    for i in range(0,len(str1)):
        if str1[i] == '(':
            left += 1
        else:
            left -= 1
        if left < 0:
              print("NO")
              return
    if left > 0:
        print("NO")
    else:
        print("YES")



for i in range(0,n):
    fun(lst[i])

 

근데 파이썬으로 input을 받거나 list 갖고노는걸 잘 못해서 다른 코드를 본다.

 

 

 

input보다 sys.stdin.readline()을 자주 쓴다.
: java로 치면 nextline보다 dbufferedreader쓰는것처럼 성능 때문에 그런듯

import sys 
a = map(int, sys.stdin.readline()) 
# a = [1, 2, 3, 4, 5]

import sys 
n = input()
a = [sys.stdin.readline() for i in range(n)]
# a = ["1 2 3", "4 5 6"]

 요런 스타일로 짜보자.