반응형
이 문제는 백준 단계별로 풀기 그리디알고리즘에 분류된 문제이다.
이 문제를 푸는 방법은 "-" 부호 뒤에 온 숫자들을 모두 빼주면 된다.
StringTokenizer 를 이용하여 "-" , "+" 를 기준으로 숫자들을 잘라주었다.
"-" 부호를 기준으로 앞 쪽에 있던 숫자들 , 첫번째 Token의 숫자들 더해주고
"-" 부호를 기준으로 뒷 쪽에 있던 숫자들 , 두번째 Token의 숫자들은 마이너스를 해주었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int result;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
result = 0;
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, "- "); // -부호 기준으로 자르기
str = st.nextToken(); // 첫번째 토큰
StringTokenizer st1 = new StringTokenizer(str, "+ "); // +부호 기준으로 자르기
while (st1.hasMoreTokens()) {
int ele = Integer.parseInt(st1.nextToken());
result += ele; // 더해주기
}
while (st.hasMoreTokens()) { // -부호 이후에 나오는 토큰이 있을 때
str = st.nextToken();
st1 = new StringTokenizer(str, "+ "); // +부호 기준으로 자르기
while (st1.hasMoreTokens()) {
int ele1 = Integer.parseInt(st1.nextToken());
result -= ele1; // 빼주기
}
}
System.out.print(result);
}
}
반응형
'컴퓨터 > 백준' 카테고리의 다른 글
JAVA - 백준 알고리즘 - 1700 멀티탭 스케줄링 (0) | 2020.02.26 |
---|---|
JAVA - 백준 알고리즘 - 1080 행렬 (0) | 2020.02.26 |
JAVA - 백준 알고리즘 - 1969 DNA (0) | 2020.02.25 |
JAVA - 백준 알고리즘 - 11399 ATM (0) | 2020.02.25 |
JAVA - 백준 알고리즘 - 1931번 회의실 배정 (0) | 2020.02.25 |