[Algorithm] 백준_1541 잃어버린 괄호 JAVA

lnnae·2020년 5월 5일
0

Algorithm

목록 보기
15/40

문제

세준이가 입력한 식에서 괄호를 적절히 쳐서 식의 값을 최소로 만들면 되는 문제이다.

풀이

빼는 값을 최대로 만들어주면 되는 문제라고 생각했다. 그래서 -를 기준으로 문자열 덩어리를 나누고, 덩어리만큼 더한 후 빼줬다.

  • 예시

55-50+40
55 - 50+40

1+3-2-3+2+5+1-6
1+3-2-3+2+5+1-6

사용한 함수

  • split(args) : 입력받은 인자를 기준으로 나눠진 String 배열을 리턴한다.
  • substring(int start, int end) : 시작, 끝 인덱스를 기준으로 자른 문자열을 리턴한다. end는 생략할 수 있다.
    사용하지는 않았지만 이걸로 삽질함

소스 코드

import java.util.Arrays;
import java.util.Scanner;

public class BOJ_1541 {
    static int min = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();

        // 맨 처음 나오는 - 앞에 있는 것들 더하기
        String[] str = input.split("-");
        min += sum(str[0].split("[+]"));

        // 그 뒤로 나오는 -까지 덩어리들의 합
        for (int i = 1; i < str.length; i++) {
            min -= sum(str[i].split("[+]"));
        }

        System.out.println(min);
    }

    /*
    * 구역 더하기
    * 무조건 + 값들만 들어옴
    * */
    static int sum(String[] input) {
        int result = 0;
        for (String num : input) {
            result += Integer.parseInt(num);
        }
        return result;
    }
}
profile
이내임니당 :>

0개의 댓글