문제풀이
def solution(s):
answer=[]
list=s.split(' ')
print(list)
for i in range(len(list)):
if list[i] == "Z":
answer.pop()
else:
answer.append(int(list[i]))
if len(answer) ==0: return 0
else: return sum(answer)
핵심요약
▶ ★애당초부터 더하려고 하지 말고, 별도로 리스트를 만들어서 생각해 보자
▶ is.digit(), is.decimal() 모두 문자열의 원소가 음수 예를 들어 -3 인 경우에는 false를 반환하므로
음수가 있는 경우에는 숫자추출 불가
▶ 따라서 문자열에 음수가 있는 경우에는 정규식을 이용해서 추출한다.
하지만 위 문제에서는 굳이 정규식을 사용할 필요가 없다.
▶ 위 문제에서는 split()으로 쪼개서 음수를 추출한다.
▶ pop()에 매개변수를 넣어주지 않는 경우 맨 마지막 요소를 pop한다.
▶ ★핵심: 문자열에서 "Z"를 발견한 경우 pop한다.
▶ answer 리스트에 아무것도 없어서 null 일때는 len(answer) ==0 을 이용한다.
'프로그래머스(파이썬) > LV.0(파이썬)' 카테고리의 다른 글
삼각형의 완성조건(1) (0) | 2022.11.18 |
---|---|
중복된 문자제거★ - not in 연산자 (0) | 2022.11.18 |
로그인 성공 (0) | 2022.11.17 |
소인수분해 ★★ - n값을 갱신 + not in 연산자 + 축약연산자 (0) | 2022.11.17 |
문자열 정렬하기(1) - 정규식★→re.sub() (0) | 2022.11.17 |