forDevLife
[백준] 1541 - 잃어버린 괄호 (자바) 본문
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] substraction = br.readLine().split("-");
int sum = Integer.MAX_VALUE;
for(int i=0; i<substraction.length; i++) {
int temp = 0;
String[] addition = substraction[i].split("\\+");
//덧셈으로 나눈 토큰을 모두 더함
for(int j = 0; j<addition.length; j++) {
temp+= Integer.parseInt(addition[j]);
}
//첫 번째 토큰인 경우, temp 값이 첫 번째 수가 됨
if(sum == Integer.MAX_VALUE) {
sum = temp;
} else {
sum -= temp;
}
}
System.out.println(sum);
}
}
- split을 이용한 방식
- +는 메타문자라, \\+로 split 해야한다. -는 메타문자 아님.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int sum = Integer.MAX_VALUE;
StringTokenizer substraction = new StringTokenizer(br.readLine(), "-");
while(substraction.hasMoreTokens()) {
int temp = 0;
//뺄셈으로 나뉜 토큰을 덧셈으로 분리하여 해당 토큰 더한다.
StringTokenizer addition = new StringTokenizer(substraction.nextToken(), "+");
while(addition.hasMoreTokens()) {
temp+=Integer.parseInt(addition.nextToken());
}
// 첫 번째 토큰은 그대로 놔두, 나머지는 뺀다.
if(sum == Integer.MAX_VALUE) {
sum = temp;
} else {
sum -= temp;
}
}
System.out.println(sum);
}
}
- StringTokenizer를 사용한 방식
'알고리즘' 카테고리의 다른 글
[이코테]큰 수의 법칙 <그리디> (0) | 2021.05.01 |
---|---|
[백준] 13305 - 주유소 (자바) (0) | 2021.05.01 |
[백준] 1931 - 회의실 배정 (자바) (0) | 2021.04.30 |
[백준] 11399 - ATM (자바) (0) | 2021.04.30 |
[백준] 11047 - 동전0 (자바) (0) | 2021.04.30 |
Comments