https://www.acmicpc.net/problem/1541
문제


풀이
우선 - 기호를 기준으로 String 배열을 나눠주고
+ 기호와 같이 있는 숫자들을 모두 더한뒤 빼준다면 최솟값이 나올 것이다
코드
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));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
String str = br.readLine();
// -를 기준으로 니눠준다
String[] ss = str.split("-");
// 처음 나오는 배열은 숫자만 있거나 + 가 같이 있기 때문에
// 초기값으로 설정
int result = plusAll(ss[0]);
for (int i = 1; i < ss.length; i++) {
// -를 기준으로 나누었기 때문에 초기값에서 빼주면 된다
result -= plusAll(ss[i]);
}
System.out.println(result);
}
static int plusAll(String ss) {
// +를 기준으로 나눠줌
String[] plus = ss.split("\\+");
// 숫자 합을 구해줌
int sum = 0;
for (String s : plus) {
sum += Integer.parseInt(s);
}
return sum;
}
}
결과
