728x90
반응형
https://www.acmicpc.net/problem/1541
식은 +와 -로만 이루어져있고 괄호를 적절히 쳐서 최소값을 구하는 문제이다.
즉 식을 뺄 때는 괄호를 적절히 쳐서 최대한 큰 값을 빼야한다.
50 + 40 - 30 + 40 +20 - 10 + 20
위와 같은 식이 있다고하자.
식에서 -가 나오면 그 값부터 다시 - 가 나오거나 식의 끝까지 괄호를 치면 된다.
50 + 40 - (30 + 40 +20) - (10 + 20)
파이썬의 경우 문자열의 split 메소드를 사용하면 이를 구현하기가 쉽다.
'-' 문자를 기준으로 한 번 나누면
50+40
30+40+20
10+20
위와 같이 나누어지고 모두 빼면 된다.
<최종 코드>
import sys
input=sys.stdin.readline
expression = input().rstrip().split('-')
res=0
if expression[0].isdigit():
res=int(expression[0])
else:
res=sum(list(map(int, expression[0].split('+'))))
for i in range(1, len(expression)):
if expression[i].isdigit():
res-=int(expression[i])
else:
res-=sum(list(map(int, expression[i].split('+'))))
print(res)
728x90
반응형
'백준 알고리즘 > 기타' 카테고리의 다른 글
[백준 1927][파이썬] 최소 힙. 파이썬 heapq 모듈 사용법 (우선순위 큐) (0) | 2023.03.13 |
---|---|
[백준 1629][파이썬] 곱셈 (0) | 2023.02.28 |
[백준 10986][파이썬] 나머지 합 (0) | 2023.02.21 |
[백준 1004][파이썬] 어린 왕자 (0) | 2023.02.16 |
[백준 11050, 11051][파이썬] 이항 계수 (0) | 2023.02.15 |
댓글