문제 링크 : 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);
}
}
'알고리즘 > 문제풀이 - 백준온라인저지' 카테고리의 다른 글
[BOJ 그리디] 신입사원 1946.JAVA (0) | 2021.07.02 |
---|---|
[BOJ 그리디] 로프 2217.JAVA (0) | 2021.07.01 |
[BOJ 그리디] 회의실 배정 1931.JAVA (0) | 2021.06.25 |
[BOJ 그리디] 동전 0 11047.JAVA (0) | 2021.06.25 |
[BOJ 그리디] ATM 11399.JAVA (0) | 2021.06.23 |