본문 바로가기
프로그래밍/algorithm

1541번: 잃어버린 괄호

by leestun 2020. 11. 11.
반응형

www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

 

 

package aaaa;

import java.util.Scanner;

public class Aa {
	public static void main(String[] args) {

				Scanner scan = new Scanner(System.in);
				String str = scan.next();
				int sum = 0;
				int minusSum = 0;
				String[] Arr1 = str.split("-");	// '-' 기준으로 잘라서 배열에 담기

				// 첫 '-'전까지는 다 더해야한다.
				String[] Arr2 = Arr1[0].split("\\+");
				
				for(String s : Arr2) {
					sum += Integer.parseInt(s);
				}
				
				// 첫 '-' 이후의 숫자는 다 더한후 sum에서 빼면 최솟값
				for(int i=1; i<Arr1.length; i++) {
					String[] Arr3 = Arr1[i].split("\\+");
					for(String s : Arr3) {
						minusSum += Integer.parseInt(s);
					}
				}
				
				System.out.println(sum - minusSum);
				scan.close();
		
	} //main
}

 

55-50+40이 입력되서 최소값을 구하려 한다면 '-'를 기준으로 split()으로 나누어 arr1배열에 담고 먼저'+'로 나누어 연산을 하고 뺀값을 sum에 넣어준다.

반응형