[백준] 1541번 잃어버린 괄호

1071 단어 psps

문제 및 입출력

문제 접근

이 문제는 입력 받은 식에서 적절한 위치의 괄호를 통해 최솟값을 구하는 로직이 중요하다.

최솟값은 뺄셈 값을 최대값으로 만들면 최솟값을 구할 수 있다.
다시 생각해보면, 빼셈을 제외하고 모든 덧셈을 먼저 수행한 후 뺄셈을 수행하면 된다.

이것을 구현해보면, 입력받은 문자열을 뺄셈을 기준으로 나누고 덧셈을 먼저 수행하여 뺄셈을 수행할 최댓값을 가진 정수만 가지면 된다.

이후에 뺄셈을 수행하면 최솟값이 나온다.

코드 구현

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[] arr = br.readLine().split("-");
    int sum = Integer.MAX_VALUE;

    for(String i : arr) {
      String[] arr2 = i.split("\\+");

      int temp = 0;
      for(String j : arr2) {
        temp += Integer.parseInt(j);
      }

      if(sum == Integer.MAX_VALUE) sum = temp;
      else sum -= temp;
    }

    System.out.println(sum);
  }
}

좋은 웹페이지 즐겨찾기