1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
여기서 아이디어는 55+50-40 등으로 주어졌을 때 (55+50) 와 40으로 나누어져서 빼줘야 가장 최솟값을 구할 수 있다는 것이다!!
package String;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Baekjoon_1541_잃어버린괄호 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), "-"); //55+50-40 등으로 주어짐
String[] str = new String[st.countTokens()]; // -를 기준으로 나누어서 저장 (가장 최소가 되려면 합할 수 있는 만큼 함쳐서 빼줘야됨)
for(int i = 0; i < str.length; i++) {
str[i] = st.nextToken();
}
int[] sum = new int[str.length];
for(int i = 0; i < str.length; i++) {
st = new StringTokenizer(str[i], "+");
while(st.hasMoreTokens()) {
sum[i] += Integer.parseInt(st.nextToken());
}
//System.out.println(sum[i]);
}
int result = sum[0];
for(int i = 1; i < str.length; i++) {
result -= sum[i];
}
System.out.println(result);
}
}'알고리즘 > BAEKJOON' 카테고리의 다른 글
| 1021 회전하는 큐 (0) | 2021.07.31 |
|---|---|
| 5052 전화번호 목록 (0) | 2021.07.28 |
| 9375 패션왕 신해빈 (0) | 2021.07.28 |
| 10773 제로 (0) | 2021.07.24 |
| 5430 AC (0) | 2021.07.23 |