백준 / 1541 / 잃어버린 괄호 / java

맹민재·2023년 5월 19일
0

Java

목록 보기
15/32
package backjun.I그리디;

import java.util.Scanner;

public class 잃어버린괄호 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        String[] s = sc.nextLine().split("-");
        sc.close();

        int sum = 0;
        for(int t=0; t<s.length; t++){
            String[] i = s[t].split("\\+");
            int tmp = 0;
            for(String j:i){
                tmp += Integer.parseInt(j);
            }
            if(t==0) sum += tmp;
            else sum -= tmp;
        }

        System.out.println(sum);

    }
}

그리디 알고리즘으로 해결한 문제

이 문제에서 핵심은 처음에 -로 먼저 split하고 그 다음 +로 split해서 연산한다는 점이다.

이렇게 하면 먼저 더한 후 빼게 된다. 즉 큰 수를 만들고 그 큰 수로 빼게 되므로 최소 값을 만들 수 있다.


Java의 경우 특수기호를 바로 사용해서 split()하게 되면 예외처리가 발생한다.

split() 할 때 특수기호를 기준으로 해야한다면 앞에 \를 붙여줘야 정상적으로 작동한다.

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글