728x90
https://www.acmicpc.net/problem/1541
문제 설명 ✨
이 문제의 핵심은 최대한 큰 수를 만들어서 빼는 것이라고 생각했다. (그래야 최솟값을 구할 수 있기 때문에!)
그래서 최대한 많은 수를 +로 묶어주고 빼면 되는 문제이다.
split을 이용해서 문자열을 자를 때 split("+")로 입력하면 인식을 못하기 때문에
split("\\+") or split("[+]")로 잘라주어야 함!!
풀이 🎉
import java.util.Scanner;
public class BOJ_1541 {
static int min = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String exp = sc.nextLine();
String[] str = exp.split("-");
min += sum(str[0].split("[+]"));
for(int i=1; i<str.length; i++) {
min -= sum(str[i].split("[+]"));
}
sc.close();
}
static int sum(String[] str) {
int result = 0;
for(String num : str) {
result += Integer.parseInt(num);
}
return result;
}
}
728x90
'Algorithms 🚀 > Baekjoon' 카테고리의 다른 글
[백준/8958번] OX퀴즈 (0) | 2021.02.16 |
---|---|
[백준/3052번] 나머지 (0) | 2021.02.02 |
[백준/1546번] 평균 (0) | 2021.02.02 |
[백준/2577번] 숫자의 개수 (0) | 2021.02.01 |
[백준/10818번] 최소, 최대 (0) | 2021.02.01 |