본문 바로가기

알고리즘/BAEKJOON

1541 잃어버린 괄호

1541번: 잃어버린 괄호 (acmicpc.net)

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

여기서 아이디어는 55+50-40 등으로 주어졌을 때 (55+50) 와 40으로 나누어져서 빼줘야 가장 최솟값을 구할 수 있다는 것이다!! 

package String;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Baekjoon_1541_잃어버린괄호 {

	public static void main(String[] args) throws Exception {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), "-"); //55+50-40 등으로 주어짐
		String[] str = new String[st.countTokens()]; // -를 기준으로 나누어서 저장 (가장 최소가 되려면 합할 수 있는 만큼 함쳐서 빼줘야됨)

		for(int i = 0; i < str.length; i++) {
			str[i] = st.nextToken();
		}

		int[] sum = new int[str.length];
		for(int i = 0; i < str.length; i++) {
			st = new StringTokenizer(str[i], "+");
			
			while(st.hasMoreTokens()) {
				sum[i] += Integer.parseInt(st.nextToken());
			}
			//System.out.println(sum[i]);
		}
		
		int result = sum[0];
		for(int i = 1; i < str.length; i++) {
			result -= sum[i];
		}
		System.out.println(result);

	}

}

'알고리즘 > BAEKJOON' 카테고리의 다른 글

1021 회전하는 큐  (0) 2021.07.31
5052 전화번호 목록  (0) 2021.07.28
9375 패션왕 신해빈  (0) 2021.07.28
10773 제로  (0) 2021.07.24
5430 AC  (0) 2021.07.23