이 문제는 내가 이상하게 접근해서 틀린 문제다.
DFS로 접근하겠다는 이상한 논리로 시작되었다.
하지만 너무나 상식적으로 접근 가능한 문제는 뇌를 쓰도록 해야 한다.
너무 많은 모든 경우의 수를 굳이굳이 계산하지 않더라도
먼저 큰수를 더하고 마지막에 뺄 수 있다는 접근방법을 생각해야 했다..
55 - 50 + 40
작은 - 큰수 -> 결과가 마이너스 이고
큰수 - 작은 -> 결과가 플러스이다.
따라서 먼저 플러스를 해서 뒷 단을 크게 만들어야 한다.
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer sub_stract = new StringTokenizer(br.readLine(),"-");
int part=0;
int result=0;
while(sub_stract.hasMoreTokens()){
int sum =0;
StringTokenizer plus_stract = new StringTokenizer(sub_stract.nextToken(),"+");
while(plus_stract.hasMoreTokens()){
sum+=Integer.parseInt(plus_stract.nextToken());
}
if(part==0){
result=sum;
}else{
result-=sum;
}
part++;
}
bw.write(Integer.toString(result));
bw.flush();
bw.close();
br.close();
}
}