[올바른 괄호]
My answer-효율성 저하
def solution(s):
answer = True
s=list(s)
#우선 갯수가 다르거나 맨앞이 ) 이거나 맨뒤가 ( 이면 바로 끝냄
answer= False if (s.count('(')!=s.count(')') or s[0]==')' or s[-1]=='(') else True
if(answer==False): return answer
while(len(s)!=0):
if(s[0]=='('):
for j in range(1,len(s)):
if(s[j]==')'):
flag=1
break
if(flag==0):
return False
else:
del s[0],s[j-1]
flag=0
else:
return False
return True
Another answer
def solution(s):
answer = True
s=list(s)
tmp=[]
answer= False if (s.count('(')!=s.count(')') or s[0]==')' or s[-1]=='(') else True
if(answer==False): return answer
for i in s:
if(i=='('):
tmp.append(i)
else:
if(len(tmp)!=0):
tmp.pop(-1)
else:
return False
if(len(tmp)!=0):
return False
return True
-----------------------------------
def solution(s):
answer = True
tmp=[]
answer= False if (s.count('(')!=s.count(')') or s[0]==')' or s[-1]=='(') else True
if(answer==False): return answer
for i in s:
if(i=='('):
tmp.append(i)
else:
if tmp:
tmp.pop(-1)
else:
return False
return True if not tmp else False
더보기
아래 another answer에서 아래코드는 그 위의 코드를 좀 더 효율성 높인 것 이다. len함수 대신 빈리스트인지를 확인하는 리스트이름형태로 써서 좀 더 빠르다. 내 코드는 2중 for문을 사용했는데, 아래코드는 스택을 이용해서 한번만으로 끝냈다
728x90
반응형
'코딩테스트 > 프로그래머스[Python]' 카테고리의 다른 글
[프로그래머스] 10/04 (5) (0) | 2021.10.04 |
---|---|
[프로그래머스] 10/02 (1) (0) | 2021.10.02 |
[프로그래머스] 09/28 (4) (0) | 2021.09.28 |
[프로그래머스] 09/27 (6) (0) | 2021.09.27 |
[프로그래머스] 09/26 (1) (0) | 2021.09.26 |