Programming/알고리즘

[프로그래머스] Lv 0 컨트롤 제트 - Python

해치 2022. 12. 28. 20:51
728x90

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120853

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.

 

2. 제한사항

 

3. Python code

def solution(s):
    stack = []
    for num in s.split(' '):
        try:
            stack.append(int(num))
        except:
            stack.pop()
    return sum(stack)

각 숫자와 Z는 공백으로 구분 된다 했으므로 split을 사용해 나눠준다.

try except를 사용해 num이 숫자일 경우 stack에 append해주고

숫자가 아닌 Z일 경우 바로 pop을 이용해 바로 전에 append해준 숫자를 stack에서 뺀다.