https://school.programmers.co.kr/learn/courses/30/lessons/12909
주어진 괄호들의 짝이 맞는지 확인하는 문제
def solution(s):
tmp = 0
for i in s:
tmp += 1 if i=="(" else -1
if tmp<0:
return False
return True if tmp==0 else False
단순하게 수를 더하고 빼서 0 이하로 가는 경우 False를 리턴.
근데 마지막을 저렇게 하는 것보다 그냥 return tmp==0
을 했다면 더 깔끔하겠지.
무엇보다 tmp += 1 if i=="(" else -1
이게 되는게 신기하네. = 같은 연산만 적용되는 줄 알았는데 += 도 되는구나~
def solution(s):
tmp = []
for i in s:
if i=="(":
tmp.append(i)
else:
try:
tmp.pop()
except:
return False
return tmp == []
이건 리스트를 스택으로 사용해 풀이한 것. try, except를 이용한 예외처리가 돋보인다.
마지막에 리스트가 비었는지 확인하는 부분에서 not tmp
로도 처리 가능하다.
list==[]
으로 확인하는 건 파이썬스럽지 못하다고 한다. 떼잉~
return tmp==0
과 같이 간단하게 True, False로 리턴 가능하다not
임. !
아님~
은 비트 연산자임not list
와 같은 코드로 비어있는지 확인 가능