[프로그래머스] 올바른 괄호 (Python)

연두·2021년 2월 23일
1
post-thumbnail

프로그래머스 - 올바른 괄호


🤔 제출(이 안되는) 코드

1차 시도

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을 통과하지 못했다. ㅠㅠ 내가 너무 단순하게 생각한 듯 하다.
검색해보니 스택을 사용하면 되는 것 같았다. 힌트를 얻은 뒤 다시 시도해보았다.

2차 시도

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

1개의 댓글

comment-user-thumbnail
2022년 10월 21일

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
그냥 이렇게 작성해도 맞지 않나요?

답글 달기