def solution(s):
s = list(s)
print('Hello Python')
return True if s.count('(')==s.count(')') and s[0]==('(') and s[-1]==(')') else False
테스트5와 테스트11을 통과하지 못했다. ㅠㅠ 내가 너무 단순하게 생각한 듯 하다.
검색해보니 스택을 사용하면 되는 것 같았다. 힌트를 얻은 뒤 다시 시도해보았다.
def solution(s):
stack = []
for i in s:
if i == '(': # '('는 stack에 추가
stack.append(i)
else: # i == ')'인 경우
if stack == []: # 괄호 짝이 ')'로 시작하면 False 반환
return False
else:
stack.pop() # '('가 ')'와 짝을 이루면 stack에서 '(' 하나 제거
return stack==[]
성공 !!
헉...
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
이문장에 else x는 왜쓴건가요?
def solution(a):
answer=0
for i in a:
if answer<0:
break
if i =="(":
answer+=1
else:
if w==")":
answer-=1
return x==0
그냥 이렇게 작성해도 맞지 않나요?