본문 바로가기
프로그래머스/Python

[프로그래머스] 올바른 괄호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 3.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

자료구조 중 스택(Stack) 구조를 활용하여 해결하였다.

 

  1. 공백 리스트로 스택을 하나 생성한다. stack = list()
  2. 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s
  3. 만약 추출한 문자가 여는 괄호이면 스택에 문자를 추가한다. if (i == '('): stack.append(i)
  4. 반면에 추출한 문자가 닫는 괄호일 경우 else
  5. 만약 스택이 공백 상태가 아니면 스택에서 원소를 하나 제거한다. if (len(stack) > 0): stack.pop()
  6. 반면에 스택이 공백 상태이면 잘못된 괄호이다. else: answer = False
  7. 잘못된 괄호임이 판별되었으므로 반복문을 종료한다. break
  8. 입력받은 문자열의 모든 문자를 확인한 뒤, 만약 스택이 공백 상태가 아니면 잘못된 괄호이다. if (len(stack) != 0): answer = False
반응형

3. 소스코드

def solution(s):
    answer = True
    
    stack = list()
    for i in s:
        if (i == '('):
            stack.append(i)
        else:
            if (len(stack) > 0):
                stack.pop()
            else:
                answer = False
                break
                
    if (len(stack) != 0):
        answer = False

    return answer
728x90
반응형