a = input().split('-')
sum = 0
for i in a[0].split('+'):
sum += int(i)
for i in a[1:]:
for j in i.split('+'):
sum -= int(j)
print(sum)
코드 설명
먼저 -를 기준으로 문자열을 분리시켜 저장한다. 그 후, 리스트의 첫번째 원소에 있는 숫자들을 더해주기 위해 + 로 분리하고 그 값을 더해준다. 그 다음 리스트의 두번째 원소부터 +로 모두 분리시켜 준 뒤, 그 값을 모두 뺄셈하여준다.
Point : 해당 수식에서 -를 만나면 다음 -가 나오기 전까지는 모두 뺄셈을 해주면 최솟값을 만들 수 있다. 따라서, -로 문자열을 분리 시킨 후 분리되어 있는 값들은 + 이므로 수들을 더하여 준 후, 그 더한 수를 뺄셈을 해주면 정답을 구할 수 있다.
728x90
'SW개발 > 코딩테스트' 카테고리의 다른 글
[백준]10773번 제로 - 스택 (0) | 2021.01.11 |
---|---|
[백준]10828번 스택 - 스택 (0) | 2021.01.02 |
[백준]11399번 ATM - 그리디 (0) | 2020.12.31 |
[백준]1931번 회의실 배정 - 그리디 (0) | 2020.12.30 |
[백준]11047번 동전 0 - 그리디 (1) | 2020.12.27 |