내 답
def solution(s):
answer = True
store = []
if s[0] == ')' or s[-1] == '(':
return False
elif len(s)//2 != len(s)/2:
return False
for i in s:
if i == '(':
store.append(i)
else:
try:
store.pop()
except IndexError:
return False
return not store
자꾸, 런타임 에러가 떠서 당황을 했다. . .
) 으로 시작하거나, ( 으로 끝나면 바로 false를 반환했다.
따로 리스트를 만들어서, push/pop -> 스택구조를 사용하도록 하였다
근데, 계속 4번, 11번 런타임 오류가 나서...뭔가 싶었더니
더이상 pop 할 값이 없는 경우가 나타날 때 (리스트에 뺄 값이 없을 때)를 확인 안해준 것이다.
다른 사람 풀이 참고했다.. ㅋㅋㅋ
예외처리를 추가해줬더니...성공
다른 사람 답
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
예외처리를 잘 써먹자!
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 스택/큐 - 프로세스 (1) | 2024.01.29 |
---|---|
[프로그래머스] 스택/큐 - 주식가격 (1) | 2024.01.29 |
[프로그래머스] 스택/큐 - 기능개발 (0) | 2024.01.26 |
[프로그래머스] 스택 - 같은 숫자는 싫어 (1) | 2024.01.26 |
[프로그래머스] 해시 - 전화번호 목록 (1) | 2024.01.24 |