표현식의 계산 순서를 임의로 정한 뒤, 계산 결과 중 가장 작은 값을 나타내기
https://www.acmicpc.net/problem/1541
import re
expression = re.sub(r'\d+',lambda x : str(int(x.group())),str(input())) # 0009 -> 9로 처리해서 받음
while re.findall(r'\d+[+-]',str(expression)) :
opr = re.findall(r'[+-]',expression)
if len(opr) > 1 and (opr[0] == '-') and (opr[1] == '+'): # 두번째 항 계산
expression = re.sub(r'\d+[+]\d+',lambda x: str(eval(x.group())),expression, count =1 )
else:# 첫번째 항 계산
expression = re.sub(r'[-]?\d+[+ -]\d+',lambda x: str(eval(x.group())),expression, count =1 )
print(expression)
계산 속도: 132ms
정규 표현식으로 코드를 잘 작성했으나, 위 해설보다 좀 더 영리한 방법이 있음