반응형
사용 언어는 자바이다.
https://www.acmicpc.net/problem/1541
해결법
예를 들어 20-30+30+40-20
우리는 괄호를 쳐서 제일 작은 수를 만들어야 한다. 20-(30+30+40)-20
1. 일단 문자열을 받는다.
2. 문자열 '-' 을 기준으로 나눈다.
3. 길이가 2 이상인 배열 인덱스 요소를 '+'를 기준으로 나눈 후 나눈 것 들을 더하고 더한 값을 해당 인덱스에 넣는다.
4. 이후 모든 배열의 값들을 계산하면 결과가 나온다.
아래는 해결 코드이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args)throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String[] str=br.readLine().split("-");
for(int i=0;i<str.length;i++) {
int sum=0;
if(str[i].length()>2) {
String[] str2=str[i].split("\\+");
for(int j=0;j<str2.length;j++) {
sum+=Integer.parseInt(str2[j]);
}
str[i]=String.valueOf(sum);
}
}
int result= Integer.parseInt(str[0]);
for(int i=1;i<str.length;i++) {
result-=Integer.parseInt(str[i]);
}
System.out.println(result);
}
}
반응형
댓글