반응형
프로그래머스 올바른 괄호를 파이썬으로 풀어보겠다.
이 문제도 레벨 2지만 예전 문제라 레벨 1에 가까운 듯하다.
문제
구현
flag 변수를 통해 괄호가 진행 중인지 여부를 판단할 수 있도록 했다.
'('라면 +를 해주고 ')'라면 -를 해주어
-값이 되면 False를 리턴하고
끝나고 나서의 값이 0이면 True를 리턴할 수 있게 구현했다.
코드
def solution(s):
flag=0
for c in s:
if c == '(':
flag+=1
else:
flag-=1
if flag<0:
return False
if flag==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
이 풀이는 append와 pop을 사용해 구현했다.
pop을 할 데이터가 없으면 (보다 )가 많으므로 False를 리턴하게 되고
마지막에 조건문을 리턴하여 딱 떨어지면 True 아니면 False를 리턴하게 했다.
이 방법도 좋은 것 같다.
count를 쓰는 다른 풀이도 있지만
count 자체가 O(n)이므로 효율성이 위의 코드들 보다 떨어지기에 가져오지 않았다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 짝지어 제거하기 Python Code (0) | 2022.08.31 |
---|---|
[프로그래머스] 타겟 넘버 Python Code (0) | 2022.08.30 |
[프로그래머스] 124나라의 숫자 (0) | 2022.08.29 |
[프로그래머스] 멀쩡한 사각형 Python Code (0) | 2022.08.29 |
[프로그래머스] 문자열 내 마음대로 정렬하기 Python Code (0) | 2022.08.28 |
댓글