1541_잃어버린괄호

hii_·2022년 3월 24일
0

BOG

목록 보기
12/22
  • 파이썬에서 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)
profile
🐢👩‍💻⛄🤍💜

0개의 댓글