괄호를 어디에 치느냐에 따라 값이 달라지기 때문에 최솟값을 얻으려면
-를 기준으로 문자열을 나눠 모두 더한뒤 마지막에 -연산을 수행하면 된다.
설계는 어렵지 않았는데 문자열을 분리하는게 쉽지 않았다.
Stringtokenizer를 이용하여 문제를 풀었다.
최종 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 전체 계산값을 저장하기 위한 변수
int sum = 0;
// 첫번째 값만 저장하기 위한 카운트
int cnt = 0;
// -기준으로 문자열 분리
StringTokenizer st = new StringTokenizer(br.readLine(), "-");
while (st.hasMoreTokens()) {
int temp = 0;
// + 기준으로 문자열 분리
StringTokenizer st2 = new StringTokenizer(st.nextToken(), "+");
// + 기준으로 나눠진 토큰을 모두 더하기
while (st2.hasMoreTokens()) {
temp += Integer.parseInt(st2.nextToken());
}
cnt++;
if(cnt == 1) {
sum += temp;
} else {
sum -= temp;
}
}
System.out.println(sum);
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 백준 1003 - 피보나치 함수 (0) | 2022.05.31 |
---|---|
(Java) 백준 2166 - 다각형의 면적 (0) | 2022.05.28 |
(Java) 백준 11727 - 2xn 타일링 2 (0) | 2022.05.27 |
(Java) 백준 11726 - 2xn 타일링 (0) | 2022.05.27 |
(Java) 백준 1927 - 최소 힙 (0) | 2022.05.26 |