알고리즘/문제풀이 - 백준온라인저지
[BOJ 그리디] 잃어버린 괄호 1541.JAVA
나규태
2021. 6. 28. 23:39
문제 링크 : https://www.acmicpc.net/problem/1541
문제 등급 : Silver II
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
문제 해결 로직
- 문자열을 '-' 기준으로 자른다.
- 자른 배열의 요소를 '+' 기준으로 자른다.
- +배열을 하나씩 더하고 - 를 한다.
이 문제는 +를 먼저 하고 -을 나중에 하여 큰 수를 빼주면 가장 작은 수를 구할 수 있는 문제이다.
아래와 같이 소스를 공유합니다.
public class 잃어버린 괄호 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split("-");
long res = Integer.MAX_VALUE;
for(int i = 0; i < str.length; i++) {
String[] s = str[i].split("\\+");
long temp = 0;
for(int j = 0; j < s.length; j++) {
temp += Long.parseLong(s[j]);
}
if(res == Integer.MAX_VALUE) {
res = temp;
}else {
res -= temp;
}
}
System.out.println(res);
}
}