한줄에 입력받은 수식들에 괄호를 잘 넣어서 결과값이 최소가 나올때의 값을 구한다.
-> + 연산을 먼저 수행하고 나서 - 연산을 수행하면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class LostBracket {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String[] word = st.nextToken().split("-");
int answer;
for (int i = 0; i < word.length; i++) {
word[i] = plusExpression(word[i]);
}
answer = Integer.parseInt(word[0]);
for (int i = 1; i < word.length; i++) {
answer -= Integer.parseInt(word[i]);
}
System.out.println(answer);
}
private static String plusExpression(String expression) {
String[] ex = expression.split("\\+"); // <- Dangling meta character error => '\\' 붙여주기
int value = 0;
for (int i = 0; i < ex.length; i++) {
value += Integer.parseInt(ex[i]);
}
return Integer.toString(value);
}
}
-
를 기준으로 split 해준다.+
를 기준으로 split을 하였기 때문에 각각의 값들을 더해주고 이를 String으로 return 해준다.+
를 기준으로 split하기 전의 문자열 배열에 대체해준다.