(알고리즘/프로그래머/스택) Python으로 섬 연결하기

문제 설명



내 솔루션

def solution(s):
    stack = ()
    for i in s:
        if i == '(':     # ( 일 경우 
            stack.append(i)
        else:
            if len(stack) == 0:  # stack이 비어있는데 )가 나온 경우 -> 올바르지 않음
                return False
            else:  # stack에 (가 있고 다음으로 )가 온 상태 -> 괄호 한 쌍 찾음 -> stack에서 ( 꺼내기
                stack.pop()
    return len(stack) == 0

스택 구조 문제를 해결했습니다.

각 괄호( )를 확인하면서 스택에 넣고,

) 스택 확인 시 스택이 비어 있으면 괄호를 완성할 수 없으므로 False를 반환합니다.

스택에 하나 이상의 (가 있으면 쌍이 생성되므로 스택에서 하나를 제거합니다.

스택이 비게 되면 스택에 들어간 ( 의 모든 쌍이 생성되었기 때문에 True를 반환합니다.