본문 바로가기
Engineering WIKI/Programmers

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

by wonos 2022. 5. 24.
 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은

programmers.co.kr

내풀이 1차 (실패)

def solution(s):
    answer = True
    open_tag = "("
    close_tag = ")"
    
    check_word = []
    open_tag_count = 0
    close_tag_count = 0
    for word in s:
        check_word.append(word)
        if word == open_tag:
            open_tag_count += 1
        
        if word == close_tag:
            close_tag_count += 1
        
        if check_word[0] == close_tag:
            return False
        
    if open_tag_count != close_tag_count:
        return False
        

    return True

다른사람 풀이 1

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==[]