728x90
주의점!
- '('와 ')'가 올바른 순서대로 들어오지 않는 경우가 있다. ')'가 먼저 들어올 수 있다
- 자료구조에서 스택의 개념을 이해하고 있어야 한다.
해결방법
stack의 역할을 해줄 리스트를 하나 생성한다
stack[-1]을 이용해 스택의 가장 상단의 요소를 파악한다
마지막 요소까지 다 받아준 후 stack리스트가 비어 있으면 True, 아니면 False를 출력한다
def solution(s):
stack = []
for i in range(len(s)):
if s[i] == '(':
stack.append(s[i])
elif len(stack) != 0 and s[i] == ')' and stack[-1] == '(':
stack.pop()
elif len(stack) == 0 and s[i] == ')':
stack.append(s[i])
if len(stack) == 0:
answer = True
else:
answer = False
return answer
이전에 백준에서 똑같은 문제를 풀었다. 9012번: 괄호
728x90
'[Coding Test] > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] lv2 프로세스 / 파이썬, 고득점kit (다른 방법) (0) | 2023.10.09 |
---|---|
[프로그래머스] lv2 기능개발 / 파이썬, 고득점kit (2) | 2023.10.09 |
[프로그래머스] lv1 같은 숫자는 싫어 / 파이썬, 고득점kit (0) | 2023.10.08 |
[프로그래머스] lv3 베스트앨범 / 파이썬, 고득점kit (0) | 2023.10.05 |
[프로그래머스] lv2 의상 / 파이썬, 고득점kit (0) | 2023.10.05 |