파이썬/백준9012 : 괄호

주리·2022년 7월 19일
0

CodingTestStudy

목록 보기
3/4
post-thumbnail



[ 흐름 ]

  1. 입력받을 수의 N(개) 받기
  2. for N만큼 반복 //하면서
    : 괄호 입력받기 (list)
  3. list의 한 요소가 "(" 면 sum+1 ")" 면 sum-1
  4. sum이 0 일때 YES / 0 아니면 NO

[ 코드 ]

import sys

N = int(sys.stdin.readline())
pr = []

for k in range (N)  :
  ps = list(sys.stdin.readline())
  sum=0
  
  for i in ps :
    if i==('(') :
      sum += 1
    elif i==(')'):
      sum -= 1
    
  if sum==0 :
    print("YES")
  else :
    print("NO")

[ 주의 ]

  • 당당하게 실패 라고 써있구요~.. 사실 왜 틀린지 모르겠다
    → 언니들이랑 스터디하면서 찾아 볼 계획

[ 수정 ]

실패 원인

  • )( 인 경우 “()” 이 아니기 때문에 NO가 나와야하는데, 나는 )( -1+1 sum=0 이 되어 YES가 나왔다

수정된 코드

import sys

N = int(sys.stdin.readline())
pr = []

for k in range (N)  :
  ps = list(sys.stdin.readline())
  sum=0
  
  for i in ps :
    if i==('(') :
      sum += 1
    elif i==(')'):
      sum -= 1
       
    if sum <0 :
        print(“NO”)
        break
    
  if sum==0 :
    print("YES")
  elif sum>0 :
    print("NO")
profile
완벽한 글 보다, 그 과정들을 기록하는 개발자

0개의 댓글