처음 생각했을때는 - 문자열을 기준으로 나누고 나머지를 그 나눈 문자열을 더한다는 생각으로 접근하였다.
이 생각으로 문제를 풀었을때는 값이 오답이 나왔었다.
왜냐하면 맨 처음수는 무조건 양수여야 하기 때문이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int sum = Integer.MAX_VALUE;
String[] arr = br.readLine().split("-"); // - 문자열을 기준으로 나누어줌
for(int i=0; i<arr.length; i++) {
int tmp = 0;
String[] add = arr[i].split("\\+");
for(int j=0; j<add.length; j++) {
tmp += Integer.parseInt(add[j]);
}
if(sum==Integer.MAX_VALUE) { //sum 을 첫번째 수로 바꾸어줌 (첫번째수는 항상 양수가 들어가야 함)
sum = tmp;
}else { //MAX_VALUE가 아니면 sum에서 tmp 값을 빼주어야함
sum -= tmp;
}
}
System.out.println(sum);
}
}
sum에 Integer.MAX_VALUE로 초기화 한 이유는
문자열을 다 나눈후 처음 나온 토큰 즉 양수를 넣어주어야 하기 때문에
for문안에서 if(sum==Integer.MAX_VALUE)로 비교를 해주었다.