-
[Baekjoon Online Judge] 1541번: 잃어버린 괄호문제 풀이/Baekjoon Online Judge 2021. 1. 8. 20:26
괄호가 지워진 수식이 주어진다. 연산자가 + - + - +.. 혹은 - + - + -.. 로 번갈아가면서 나오게 된다. 여기서 규칙성을 찾아보았다.
만약 55-50+40-20+25-10 인 경우 (55) - (50 + 40) - (20 + 25) - (10)이 가장 최소값이 된다.
만약 55+50-40+20-25+10 인 경우 (55+50)-(40+20)-(25+10)이 가장 최소값이 된다.항상 -를 기준으로 ()를 사용하면 가장 최소값을 구할 수 있다. -를 기준으로 split하고, 각각의 수식을 +로 다시 한번 split 해준다. 처음에 오는 수식은 더해주고 나머지는 뺄셈을 진행하여 답을 구해냈다.
import java.io.*; public class Baekjoon1541 { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out)); String[] expression = bufferedReader.readLine().split("-"); int result = 0; int tempResult = 0; for (int i = 0; i < expression.length; i++) { String[] tempExpression = expression[i].split("\\+"); for (int j = 0; j < tempExpression.length; j++) { tempResult += Integer.parseInt(tempExpression[j]); } if (i == 0) result += tempResult; else result -= tempResult; tempResult = 0; } bufferedWriter.write(String.valueOf(result)); bufferedWriter.flush(); bufferedReader.close(); bufferedWriter.close(); } }
'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[Baekjoon Online Judge] 1260번: DFS와 BFS (0) 2021.01.12 [그래프 탐색] DFS와 BFS (0) 2021.01.12 [Baekjoon Online Judge] 1100번: 하얀 칸 (0) 2021.01.08 [Baekjoon Online Judge] 9251번: LCS (0) 2021.01.08 [Baekjoon Online Judge] 10808번: 알파벳 개수 (0) 2021.01.08