728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

닫힌 괄호와 열린 괄호의 수가 같아야 닫혔다고 판단하는 문제이다
열린 경우는 스택 배열에 넣고 닫힌 경우는 pop()해서 헤드를 제거하면 스택배열의 길이가 0이 되도록 풀면 되는 문제이다
풀이
def solution(s):
stack = []
for i in range(len(s)):
if s[i] == "(":
stack.append("(")
elif s[i] == ")":
if len(stack) == 0:
return False
stack.pop()
if len(stack) != 0:
return False
else:
return True
s[i]가 열린 괄호라면 스택에 추가해준다
s[i]가 닫힌 괄호일 경우
- 1. stack의 길이가 0이면 False반환 (처음으로 닫힌 괄호가 들어가는 경우)
- 2. 그게 아니라면 pop()으로 이미 들어가 있는 열린 괄호를 제거해준다
만약 stack의 길이가 0이 아니라면 => 괄호 짝이 안맞는 경우니까 False 반환하고
그게 아니라면 True를 반환해준다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [스택] 같은 숫자는 싫어 - python (0) | 2025.05.07 |
|---|---|
| [프로그래머스] 자연수 뒤집어 배열로 만들기 (JAVA) (0) | 2024.10.22 |
| [Lv.0][PCCE 기출문제] 7번 / 가습기 (0) | 2024.08.15 |
| [Lv.1] 제일 작은 수 제거하기 (0) | 2024.08.13 |
| [Lv.1] 자릿수 더하기 (0) | 2024.08.12 |