728x90
반응형
📌 문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=python3#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📌 문제설명
- (문제는 생략)
- 사용한 테스트 케이스 참고
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
📌 풀이과정
- "(" 인 경우 스택에 추가 / ")"인 경우 스택에서 pop(-1) 한 값을 검사
- 중요한 점은 언제 False인지를 빠짐없이 알아야 한다는 것
- 처음부터 ")" 인 경우
- (처음부터는 아님) ")" 일 때 스택에서 pop(-1) 한 값이 "(" 가 아니면
- 문자열을 전부 돌았을 때 올바른 괄호식이라면 스택이 비어있어야 한다. 근데 비지 않은 경우
📌 풀이코드
def solution(s):
answer = True
stack = []
for c in s:
if c == "(":
stack.append(c)
elif c == ")":
if stack:
v = stack.pop(-1)
# ")"일 때 "(" 가 pop되지 않은 경우
if v != "(": return False
# 처음부터 ")" 인 경우
else: return False
# 문자열을 다 돌았을 때, 올바른 괄호라면 스택이 비어야 하는데, 비지 않는 경우
if stack: return False
else: return True
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Python] Lv2. 최솟값 만들기 (1) | 2024.10.17 |
---|---|
[프로그래머스/Python] Lv2. 최댓값과 최솟값 (0) | 2024.10.17 |
[프로그래머스/Python] 알고리즘고득점Kit-스택/큐-기능개발 (1) | 2024.10.17 |
[프로그래머스/Python] 알고리즘고득점Kit-해시-베스트앨범 (0) | 2024.10.17 |
[프로그래머스/Python] 알고리즘고득점Kit-DFS/BFS-게임맵최단거리 (6) | 2024.10.16 |