코딩 테스트
(Java) 백준 1541 - 잃어버린 괄호
로승리
2022. 5. 28. 05:58
괄호를 어디에 치느냐에 따라 값이 달라지기 때문에 최솟값을 얻으려면
-를 기준으로 문자열을 나눠 모두 더한뒤 마지막에 -연산을 수행하면 된다.
설계는 어렵지 않았는데 문자열을 분리하는게 쉽지 않았다.
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);
}
}