코딩테스트/백준

백준 1541 : 잃어버린 괄호 _자바 Java

플래시🦥 2023. 1. 23.
반응형

https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

 


*괄호를 추가하여 최솟값을 만드는 것이기 때문에  ' - ' 시작부터 그다음 ' - ' 사이의 모든 값을 괄호로 묶어 큰 값을 마이너스 하게 해주면 최솟값을 만들 수 있다. 

예를 들어,

10+20-30+40 의 식이 있다면,   (10+20)-(30+40) 으로 묶어 주었을 때 최솟값을 가질 수 있다. 

 

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] form= br.readLine().split("-");
		int sum=0; 

		for(int i=0; i<form.length;i++) {
			int tmp=0;
			String[] form2=form[i].split("\\+");
			for(String a: form2)
				tmp+=Integer.parseInt(a);
			
			if(i==0)	//맨 앞에 있는 합
				sum+=tmp;
			else
				sum-=tmp;
		}
		
		System.out.println(sum);
		br.close();
	}// main() 	
}// class Main
728x90
반응형

댓글