이 문제는 괄호를 적절하게 쳐서 가장 작은 수를 만들면 된다
예를들어 55 - 50 + 40이 있으면 55 - (50 + 40) = -35가 되고 제일 작은 숫자이다
+--+, +-+- 등 여러가지 생각해봤는데 -가 나온 시점부터 그냥 빼버리면 가장 작은 수가 된다
예를들어
55 - 50 + 40 - 20 - 10 하면 그냥 마이너스가 나온 시점부터 다 빼버리면 된다.
55 - 50 + 40 - 20 + 10 이것도 맨 마지막 + 10은 앞에서 괄호 묶어버리면 -가 되기 때문에 문제없다
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
// 부호가 마이너스일때까지 빼주면 된다.
int answer = 0;
boolean isMinus = false;
String number = "";
for(int i=0;i<str.length();i++){
String element = str.charAt(i) + "";
// System.out.println(element);
//부호일때
if(element.equals("+") || element.equals("-")){
if(isMinus){
answer -= Integer.parseInt(number);
number = "";
} else{
answer += Integer.parseInt(number);
number = "";
}
if(element.equals("-")){
isMinus = true;
}
// System.out.println("answer = " + answer);
}
// 숫자일때
else{
number += element;
}
// System.out.println("number = " + number);
}
if(isMinus){
answer -= Integer.parseInt(number);
} else{
answer += Integer.parseInt(number);
}
System.out.println(answer);
}
}