Open jeeyeonLIM opened 3 years ago
하지만 불통. 그 이유는 👉 "()))((()"
반례 때문이다. 즉 갯수는 같다고 하더라도 괄호가 잘 못 닫힌 경우다.
def solution(s):
answer = True
if s[0] ==")" or s[-1]=="(" :
return False
st=0
for i in s:
if i =="(":
st+= 1
elif i == ")":
st-= 1
if st != 0:
return False
return answer
(
가 나오기도 전에 ')'가 나오는 경우는 return해서 끝내기 def solution(s):
answer = True
if s[0] ==")" or s[-1]=="(" :
return False
st=0
for i in s:
if i =="(":
st+= 1
elif i == ")":
st-= 1
if st < 0:
return False
break
return answer
위에 Ver2에서는 return st값이 (-)인 경우만으로 제한 조건을 걸어줬다. 하지만, ( 문자가 하나가 더 많아서 st값이 (+)값이 될때도 잘못된 괄호를 의미하기 때문에 정확히 0값이 되어야만 올바른 괄호라고 할 수 있다.
def solution(s):
if s[0] ==")" or s[-1]=="(" :
return False
st=0
for i in s:
if i =="(":
st+= 1
elif i == ")":
st-= 1
if st <0 :
return False
break
return st == 0
append + pop
def solution(s):
answer = True
Queue = []
for i in s:
if i == '(': Queue.append('(')
else:
# try로 실행할 코드를 넣고 except에 예외 발생시 실행할 부분 추가.
try: Queue.pop()
except: return False # 즉 Queue가 빈 리스트여서 pop할게 없을 때 False를 return
if len(Queue) == 0: return True # 괄호가 올바르게 들어있는 경우
else: return False
def is_pair(s):
x = 0
for w in s:
if x < 0:
break
x = x+1 if w=="(" else x-1 if w==")" else x
return x==0
x = x+1 if w=="(" else x-1 if w==")" else x
와 같은 형태를 처음봤다. 이건 아래와 같은 if문을 간단하게 표현할 수 있는 방법이다.
if w=="(" :
x = x+1
elif w==")" :
x= x-1
else x= x
x+1 if w=="(" else x-1 if w==")" else x
로 표현되는 것이며, if 값에 따라서 x에 x+1, x-1, x값이 들어갈 수 있다.
문제 설명
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어
제한사항
입출력 예
입출력 예 설명