Notice
Recent Posts
Recent Comments
Link
S E P H ' S
[Python] 올바른 괄호 본문
풀이
1. 스택 원리로 풀이.
2. 첫 괄호가 ')'이라면 바로 False
3. 반복문을 돌면서 '(' 이라면 list에 append.
4. 만일 ')'이라면 먼저, 리스트가 비었는지 먼저 체크하고 비었다면 False를 반환한다.
-> ex) (())) 과 같은 경우 ')'을 처리하는 부분에서 빈 값에서 pop을 해서 에러가 났었다.
5. 그렇지 않다면 list.pop()을 사용하여 먼저 들어가 있는 '('을 처리
def solution(s):
list = []
# 처음이 ')'인 경우
if s[0] == ')':
return False
# 처음이 '('인 경우
for n in s:
if n == '(':
list.append(n)
else:
if len(list) == 0:
return False
list.pop()
if len(list) == 0:
return True
else: return False
다른 사람의 풀이
비슷한 문제를 에러처리로 풀어낸 것
def is_pair(s):
st = list()
for c in s:
if c == '(':
st.append(c)
if c == ')':
try:
st.pop()
except IndexError:
return False
return len(st) == 0
'Algorithm > Programmers' 카테고리의 다른 글
[Python] 가장 큰 정사각형 찾기 (0) | 2021.08.24 |
---|---|
[Python] n진수 게임 (0) | 2021.08.23 |
[Python] 다음 큰 숫자 (0) | 2021.08.22 |
[Python] 카펫 (0) | 2021.08.08 |
[Python] 여행 경로 (0) | 2021.08.07 |