- 파이썬에서 list 길이 : len(list이름)
- re 라이브러리의 findall() 함수 이용하면 숫자와 기호를 쉽게 분리가능함
-> 받을기호배열이름 = re.findall('[^0-9]', 문자열이름)
- +,- 빼고 숫자만 분리
-> replace()로 기호를 공백으로 바꿔주고, split( )으로 공백분리하여 숫자만 구함.
- 내가 생각한 문제 해결 아이디어 : 최소로 만들려면 - 뒤의 +만 다 -로 바꾸면 되지 않을까?
import re
arr = input()
num_arr = arr.replace('+', ' ').replace('-', ' ').split() # 기호를 공백으로 바꾼후 split으로 공백과 수 분리
mark_arr = re.findall('[^0-9]', arr) # re 라이브러리를 이용해서 숫자가 아닌 것만 모음
for i in range(len(mark_arr)):
if i == (len(mark_arr)-1): # i가 마지막 아이템이면 for문 탈출
break
if mark_arr[i] == '-' and mark_arr[i+1] == '+': # - 뒤의 +는 다 -로 바꿈(그래야 최소됨)
mark_arr[i+1] = '-'
ans = int(num_arr[0]) # ans 값 초기화
for i in range(len(num_arr)):
if i == (len(num_arr)-1): # i가 마지막 아이템이면 for문 탈출
break
if mark_arr[i] == '-':
ans = ans - int(num_arr[i+1])
else:
ans = ans + int(num_arr[i+1])
print(ans)