728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=python3
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
def solution(s):
stack=[] # 열린 상태로 닫히지 않는 괄호가 들어 있는 스택
for i in s:
if i=='(':
stack.append(i) # 스택에 추가
elif len(stack)<=0: # 닫는 괄호가 열린 괄호보다 많을 경우
return False
else:
stack.pop()
if len(stack)>0: # 모든 문자를 순회했을 때 열린 상태로 닫히지 않은 괄호가 남아 있을 경우
return False
return True
Tip
- 스택을 이용하여 풀 수 있다. (참고로, 파이썬에서는 스택 자료구조가 따로 없고, 리스트를 이용하여 스택처럼 활용한다.)
- 여는 괄호가 나올 때마다 스택에 넣어주고, 닫는 괄호가 나올 때마다 스택에 있는 원소를 빼주는 과정을 실행했을 때, 중간에 원소를 빼주는 과정에서 스택의 원소가 부족한 경우가 있거나(닫는 괄호가 열린 괄호보다 많을 경우) or 모든 과정을 마쳤을 때 스택에 원소가 남아 있으면(열린 상태로 닫히지 않은 괄호가 남아 있을 경우) 올바르지 않은 괄호인 것이다.
TIL
없음
728x90
반응형
'Algorithm, 코딩테스트' 카테고리의 다른 글
[프로그래머스/코딩테스트 연습/Lv.1] 푸드 파이트 대회-파이썬(Python) (0) | 2022.11.04 |
---|---|
[프로그래머스/코딩테스트 연습/Lv.2] 기능개발-파이썬(Python) (0) | 2022.11.04 |
베스트앨범-파이썬(Python)[프로그래머스/코딩테스트 연습/Lv.3] (0) | 2022.11.03 |
의상-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.2] (0) | 2022.11.03 |
전화번호 목록-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.2] (0) | 2022.11.03 |