문제
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
코딩 테스트 문제를 풀다 보면, 괄호나 뽑아서 없애기 등 여러 문제들을 접할 수 있는데 이런 류의 문제들은 자료구조인 "스택"을 이용하면 쉽게 풀 수 있다.
해당 문제 같은 경우에는 스택을 정의한 다음에 "(" 이 들어올 때, 스택에 "("을 추가하고 ")"이 들어오면 스택에 있는 "("을 빼는 식으로 코드를 작성하면 된다.
유의할 점은 ")"을 처리할 때 스택에 값이 없다면 pop() 처리할 때 인덱스 오류가 있을 수 있기 때문에 관련 예외 처리를 잘해주어야 한다.
🖥️ main.py
from collections import deque
def solution(s) -> bool:
"""
괄호 문제는 stack을 이용하여 처리하면 쉽게 처리 할 수 있다.
"""
stack = deque()
for element in s:
if element == "(":
stack.append("(")
else:
if stack:
stack.pop()
else:
return False
if stack:
return False
else:
return True
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 LV2 영어 끝말잇기 (0) | 2023.07.17 |
---|---|
프로그래머스 LV2 최솟값 만들기 (0) | 2023.07.17 |
프로그래머스 LV2 프로세스 (0) | 2023.07.11 |
프로그래머스 LV2 주차 요금 계산 (0) | 2023.07.11 |
프로그래머스 Lv2 구명보트 (0) | 2023.07.04 |