코딩 기록들

[스택/ 큐] 2. 올바른 괄호 본문

프로그래머스 문제기록

[스택/ 큐] 2. 올바른 괄호

코딩펭귄 2023. 10. 20. 02:02

접근방법 

(  (  (  )  )  )  (  )

1 2 3 2 1 0  1 0 -> true

 

line3 : cnt라는 변수는 아래의 else문에서 쓰임. cnt값이 0으로 끝나야 True 반환, 아니라면 False

line5 : ')'로 시작하면 무조건 false

line7~ 

- 첫번째 for문 : i가 문자열s를 도는데, 인덱스 i+1 = '(' 이면 cnt 값 +1, 아니라면 -1

def solution(s):
    answer = True
    cnt = 1
    
    if s[0] == ')':
        answer = False
    else:
        for i in range(len(s)-1):  # (())()
            if cnt >= 0:
                if s[i+1] == '(':
                    cnt += 1
                else:
                    cnt -= 1
        if cnt == 0:
            answer = True
        else:
            answer = False       
    return answer