프로그래머스_올바른 괄호

임정민·2023년 5월 22일
1

알고리즘 문제풀이

목록 보기
47/173
post-thumbnail

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를 반환하는 방식의 코드였습니다.🐶🐶🐶

감사합니다.

profile
https://github.com/min731

0개의 댓글