메모
/*
1. 식 만들기 : 양수, +, -, 괄호
- 조건 1 : ‘0’~‘9’, ‘+’, ‘-’만으로 이루어짐
- 조건 2 : 가장 처음과 마지막 문자는 숫자
- 조건 3 : 연속해서 두 개 이상의 연산자 X
- 조건 4 : 연속되는 숫자의 자리 < 5자리
- 조건 5 : 수는 0으로 시작 가능
- 조건 6 : 식의 길이 <= 50
2. 식에서 괄호 지우기 : 양수, +, -
3. 다시 괄호 넣어서 최솟값 만들기
*/
일반적인 최솟값?
+
의 경우, 낮은 숫자 多수록 -> +0 +1-
의 경우, 높은 숫자 多수록 -> -9 -8괄호( ) 가 있는 최솟값?
과정
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int sum = Integer.MAX_VALUE; // 변수 sum 을 Integer.MAX_VALUE 로 초기화해둔다
String[] subtraction = in.nextLine().split("-"); // -를 기준으로 각 정수를 분리하고, 배열 subtraction 에 담는다
for (int i = 0; i < subtraction.length; i++) {
int temp = 0;
String[] addition = subtraction[i].split("\\+"); // 배열 subtraction 를 +를 기준으로 분리하고, 배열 addition 에 담는다
for (int j = 0; j < addition.length; j++) { // 모든 배열을 더한다.
temp += Integer.parseInt(addition[j]);
}
// 첫 번째 값이 temp 에 담겨서, sum 의 첫 번째 수가 됨
if (sum == Integer.MAX_VALUE) {
sum = temp;
} else {
sum -= temp;
}
}
System.out.println(sum);
}
}
첫 번째 수
\\+
\\
를 붙여주어야 함-
, +
를 split 으로 모두 제거하고
for문과 if문으로 직접 -
, +
해줌
참고: 자바 정규식(Regular Expression) 사용법 💯 정리
참고: [백준] 1541번 : 잃어버린 괄호 - JAVA [자바]