나의 풀이1
def solution(s):
stack=[]
for i in range(len(s)):
if s[i]=='(':
stack.append(s[i])
elif s[0]==")": return False
else:
try:
stack.pop()
except IndexError as idx:
return False
if len(stack)==0:
return True
return False
나의 풀이2
def solution(s):
stack=[]
for i in range(len(s)):
if s[i]=='(':
stack.append(s[i])
else:
try:
stack.pop()
except IndexError as idx:
return False
if len(stack)==0:
return True
return False
▶ 위에 1번풀이나 2번풀이나 똑깥다.
나의 풀이3-리펙토링
def solution(s):
answer =True
stack=[]
for i in range(len(s)):
if s[i]=='(':
stack.append(s[i])
elif s[i]==')':
if(len(stack)==0): #짝이 맞지 않아서 닫는 괄호 )만 있는 경우
answer=False
break
else: #짝이 맞아서 pop하는 경우
stack.pop()
if len(stack)!=0: #짝이 맞지 않아서 스택이 차있는 경우
answer=False
return answer #짝이 맞아서 스택이 비어있는 경우
# s="())" 반례1
# s="()))" #반례2
#print(solution(s))
'프로그래머스(파이썬) > LV.2(파이썬)' 카테고리의 다른 글
카펫→ 약수는 제곱근까지만 구하기, 2차원 리스트 요소2개 x,y로 접근★★ (0) | 2022.12.24 |
---|---|
다음 큰 숫자★→count()함수, int('숫자문자열', n)→n진법의 '숫자문자열'을 10진수로 (0) | 2022.12.24 |
이진변환 반복하기→ 특정 요소 제거★★ (0) | 2022.12.23 |
최소값 만들기→ "내적"문제와 유사 + 리스트 곱하기 +zip()★★ (0) | 2022.12.23 |
JadenCase 문자열 만들기 → 이상한 문자 만들기★★+교훈: 애당초 소문자로 전부 바꾸기 (0) | 2022.12.23 |