티스토리 뷰

백준

백준 9012 문제풀이 [python]

ys.k 2023. 6. 8. 14:51

포스팅에 앞서 내용이 틀릴 수 있습니다.

해당 부분 지적 감사히 받습니다.

 

문제를 보자

간단히 입력값을 받을 건데, 괄호가 () 이렇게 한쌍으로 제대로 열렸다 닫히면 YES를 출력하면 된다.

 

코드

a = int(input())

check = 0

for i in range(a):
    vps = list(input())
    for j in vps:
        if j == '(':
            check += 1
        elif j == ')':
            check -= 1
        if check < 0:
            break
    if(check == 0):
        print('YES', end ='\n')
    else:
        print('NO', end = '\n')
    check = 0

처음에는 간과한 부분이 있었다.

 

아래 코드를 보며 알아보자.

 

a = int(input())

check = 0

for i in range(a):
    vps = list(input())
    for j in vps:
        if j == '(':
            check += 1
        elif j == ')':
            check -= 1
    if(check == 0):
        print('YES', end ='\n')
    else:
        print('NO', end = '\n')
    check = 0

 

아래 코드에서는 (, )의 개수만 계산하여 )(이 올 경우도 YES로 반환하게 되었다.

 

따라서 한번이라도 )이 먼저 나오는 순간 반드시 NO가 나오게 코드를 추가해주었다.

 

배운 점

1. list(input()) // 배열에 한 자리씩 요소를 넣을 수 있다. 굉장히 편리하다.

'백준' 카테고리의 다른 글

백준 1003 문제풀이 [python]  (0) 2023.06.09
백준 1978 문제풀이 [python]  (0) 2023.06.08
백준 1065 문제풀이 [python]  (2) 2023.06.08
백준 2579 문제풀이 [python]  (0) 2023.06.07
시간 복잡도, 공간 복잡도  (2) 2023.06.06
댓글