문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12909
문제 설명
열린 괄호 "(" 와 닫힌 괄호 ")"가 올바르게 짝지어진 문자열을 찾아내 true와 false를 return하는 문제이다.
- "()()" 또는 "(())()" 는 올바른 괄호입니다.
- ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
제한사항
- 문자열 s의 길이 : 100,000 이하의 자연수
- 문자열 s는 "(" 또는 ")" 로만 이루어져 있습니다.
풀이
스택을 만들어 문제에서 소괄호만 주어지기 때문에 "("은 스택에 넣고, ")"가 나왔을 때 스택에 "("을 지우고 스택에 "("없으면 false를 return하고, 마지막으로 스택이 비어있으면 true, 비어있지 않으면 true를 리턴했다.
✅ Code - 성공
def solution(s):
stack = []
for oc in s:
if oc == '(':
stack.append(oc)
else:
if not stack:
return False
stack.pop(-1)
if stack:
return False
else:
return True
'알고리즘 문제 > 프로그래머스_Lv2 도장깨기' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 (Python) (1) | 2023.12.18 |
---|---|
[프로그래머스] 가장 큰 정사각형 찾기 (Python) (0) | 2023.12.14 |
[프로그래머스] 3 x n 타일링 (Python) (0) | 2023.12.12 |
[프로그래머스] 2 x n 타일링 (Python) (1) | 2023.12.08 |
[프로그래머스] 124 나라의 숫자 (Python) (1) | 2023.12.07 |