Python 적응 문제풀이입니다. 손에 익히기 위해 비교적 쉬운 문제들을 풀며 적응하고 있습니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12909
[나의 풀이]
def solution(s):
pl_sum = 0
answer = True
for pl in s:
if pl=="(" :
pl_sum+=1
else:
pl_sum+=-1
if pl_sum<0 :
answer = False
break
if pl_sum != 0 :
answer = False
return answer
입력된 괄호 리스트 EX) "()()" 를 숫자로 바꾸어 풀었습니다. 입력된 괄호 리스트에서 순서대로 "("가 나오면 +1, ")"가 나오면 -1씩 합을 구하는 방식으로 풀었습니다. 여기서 연산 도중 합이 음수가 되거나 전체 합이 0이 아닐 시 올바르게 짝지어 진 것이 아니기 때문에 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
pop()을 활용하는 풀이였습니다. 만약 "(",")" 짝이 맞지 않는다면 IndexError 예외처리로 False를 반환하는 방식의 코드였습니다.🐶🐶🐶
감사합니다.