https://www.acmicpc.net/problem/1541
식이 주어지고 해당 식에 괄호를 적절히 쳐서 최종 값을 작아지게 만드는 문제이다.
해당 식은 더하기와 빼기만 있다. 이를 최대한 작게 만드려면 최대한 작은 수를 더하고 큰 수를 빼야한다.
따라서 괄호는 -를 제외하고 전부 넣어주면 된다.
ex)
55 - (50 + 40)
77 - (55 + 30 + 2) - (44) - (41 + 25)
나는 식을 입력받으면 -를 기준으로 이를 split하고 String배열에 넣어두었다. 그리고 이 배열을 하나씩 탐색하며 더한 값을 전체에서 빼준다( 첫 값은 더해준다.)
풀이코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String arg[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr = br.readLine().split("\\-");
int i;
int j;
int k;
int fin = 0;
String[] n;
for(i = 0;i<arr.length;i++) {
k=0;
n = arr[i].split("\\+");
for(j = 0;j<n.length;j++) {
k+=Integer.parseInt(n[j]);
}
if(i == 0) {
fin +=k;
}
else {
fin-=k;
}
}
System.out.printf("%d",fin);
}
}
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 [자바 : java] 1038 : 감소하는 수 (0) | 2023.07.24 |
---|---|
백준 [자바 java] 11399 : ATM (0) | 2023.07.23 |
백준 [자바 java] 1026 : 보물 (0) | 2023.07.23 |
백준 [자바 java] 2839 : 설탕배달 (0) | 2023.07.23 |
백준 [java 자바] 1092 : 배 (0) | 2023.07.18 |