728x90
아이디어
괄호를 적절히 쳐서 식의 값을 최소로 만들기. 식은 0~9, +, -로만 이루어져있다.
-> 첫번째 '-' 기호를 기준으로, 이후에 나오는 모든 수를 괄호로 묶어 최대한 많이 빼면 된다. -> 그리디!
풀이
str = input()
parts = str.split('-')
result = sum(map(int, parts[0].split('+')))
for part in parts[1:]:
result -= sum(map(int, part.split('+')))
print(result)
문자열 다루는 게 익숙치 않아 꽤 헤맸던 문제이다.
split을 잘 쓰는 게 관건이었다!
parts = str.split('-')
split('-')을 하게 되면, -을 기준으로 분리하여 리스트를 반환한다.
sum(map(int, parts[0].split('+')))
나눠진 parts의 첫번째 요소를 +를 기준으로 나누고, int로 바꾼 후 합한다.
for part in parts[1:]:
-기준으로 나눈 리스트에서, 첫번째 요소를 제외한 나머지 요소 반복문
result -= sum(map(int, part.split('+')))
마찬가지로 +를 기준으로 나누고, int로 바꾼 후 합하고, result에서 빼준다.
728x90