문제 링크 (Level 2)
https://school.programmers.co.kr/learn/courses/30/lessons/12909
나의 코드 (Python)
def solution(s):
answer = True
st = []
for a in s:
if not st:
st.append(a)
else:
if a == ")" and st[-1] == "(":
st.pop()
else:
st.append(a)
if len(st) == 0:
answer = True
else:
answer = False
return answer
이 문제는 스택을 활용하여 풉니다.
스택이 비어있다면 값을 append 하고 ")"이 들어오면서 스택 바로 위가 "("라면 pop 시킵니다.
그 외 조건은 모두 append입니다.
최종적으로 스택이 비어있으면 True, 하나라도 남는다면 False입니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 숫자의 표현 (Python) (1) | 2022.09.25 |
---|---|
[프로그래머스] JadenCase 문자열 만들기 (Python) (0) | 2022.09.25 |
[프로그래머스] 최솟값 만들기 (Python) (0) | 2022.09.16 |
[프로그래머스] 이진 변환 반복하기 (Python) (0) | 2022.09.13 |
[프로그래머스] 최댓값과 최솟값 (Python) (0) | 2022.09.07 |
댓글