입력받은 수식의 결과가 최소가 되기 위해서는 먼저 모든 더하기 연산을 한 후, 빼기 연산을 해주면 된다.
우선 입력받은 문자열을 '-'을 기준으로 나눠서 문자열 배열에 담는다.
입력받은 문자열이 55-50+40 이면 "55" 와 "50+40" 로 나누어진다. arr[0] = "55", arr[1] = "50+40"
나누어진 문자열에 '+'가 포함되어 있으면 더하기 연산을 진행한 후 결과값으로 대체한다.
먼저 "55"에는 '+' 문자가 없기 때문에 아무런 처리도 하지 않는다.
"50+40"의 경우, '+' 문자가 존재하므로 연산을 해줘야 한다.
'+' 을 기준으로 나눈 후 각 수들을 더해서 합을 구한다. 50 과 40을 더하면 90이 된다. arr[1]를 "90" 으로 대체해준다.
arr[0] = "55", arr[1] = "90"
이제 수식에 존재하는 모든 더하기 연산은 끝났다.
arr배열에 남아있는 수들을 차례대로 빼기 연산 해준다.
Integer.parseInt(arr[0]) - Integer.parseInt(arr[1]) = 55 - 90 = -35
arr배열에 남아있는 모든 수들을 빼기 연산한 결과는 -35이 된다.
그러므로 55-50+40 의 최소 결과는 -35이다.
소스코드 :
'BOJ' 카테고리의 다른 글
[백준 9576번] 책 나눠주기 (java) (0) | 2021.03.04 |
---|---|
[백준 1744번] 수 묶기 (java) (2) | 2021.03.04 |
[백준 11399번] ATM (java) (0) | 2021.03.04 |
[백준 1931번] 회의실 배정 (java) (0) | 2021.03.04 |
[백준 11497번] 통나무 건너뛰기 (java) (0) | 2021.03.04 |