코딩테스트(연습)

22.06.21_잃어버린_괄호_1541번_백준_그리디

양빵빵 2022. 6. 21. 17:56
package datastructure.chap09;

// 100-40+50+74-30+29-45+43+11
// 100 - 164 - 59 - 99 = -222
/*
     덧셈부분을 전부 괄호를 쳐서 먼저계산한 후
     뺄셈을 진행하면 최소값을 얻을 수 있을 것이다.
 */

/*
import java.util.Scanner;
        import java.util.StringTokenizer;

// 백준 1541
public class 그리디02 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        sc.close();

        StringTokenizer st = new StringTokenizer(str, "-");

        int result = 0;
        for (int i = 0; st.hasMoreTokens(); i++) {
            String token = st.nextToken();
            int addSum = calcTotal(token);
            if (i == 0) {
                result += addSum;
            } else  {
                result -= addSum;
            }
        }
        System.out.println(result);
    }
    // 토큰문자열을 받아서 총합을 구해서 리턴
    private static int calcTotal(String token) {
        int total = 0;
        StringTokenizer st = new StringTokenizer(token, "+");
        while (st.hasMoreTokens()) {
            total += Integer.parseInt(st.nextToken());
        }
        return total;
    }
}