-
BOJ) 잃어버린 괄호알고리즘/백준 2020. 7. 21. 15:07반응형
잃어버린 괄호
풀이
양수와 +-로만 이루어졌고 최대 길이가 50인 수식이 있다.
이 수식에 적절하게 괄호를 씌워서 최소값을 구하는 문제다.
그렇다면, 가장 중요한 것은 -가 최대가 되게 해야한다.
-로 먼저 split을 해주고, - 뒤에 있는 모든 +를 더해서 -를 씌워주면 최소값이 나올 것이다.
이 때, -를 기준으로 split을 해줬기 때문에, 배열의 첫번째 index는 -가 없다는 점을 유의해야한다.
그래서 idx ==0인 경우에는 -를 씌워주지 않고 답을 구했다.
-로 split한 문자열을 다시 +로 split해서 각 숫자의 합을 더했다.
이 숫자들을 다 더해서 -를 씌워주면서 첫번째 인덱스의 값과 빼주면 답을 구할 수 있다.
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); solution(br.readLine()); br.close(); } private static void solution(String arithmeticStr) { String[] minusArr = arithmeticStr.split("\\-"); int answer =0; for(int i=0; i<minusArr.length; i++) { int partSum = getCalNum(minusArr[i]); if(i ==0) { partSum *= -1;} answer -= partSum; } System.out.println(answer); } private static int getCalNum(String str) { String[] numArr = str.split("\\+"); int result =0; for(String numStr : numArr) { result += Integer.parseInt(numStr); } return result; } }
반응형'알고리즘 > 백준' 카테고리의 다른 글
BOJ) 문자열 (0) 2020.07.21 BOJ) 신기한 소수 (0) 2020.07.21 BOJ) 분해합 (0) 2020.07.21 BOJ) 단어 수학 (1) 2020.07.18 BOJ) 체스판 다시 칠하기 (0) 2020.07.18