[JAVA] 백준 1541 - 잃어버린 괄호

임홍원·2022년 9월 7일
0

백준 1541 - 잃어버린 괄호

문제


알고리즘 (접근방법)

처음 생각했을때는 - 문자열을 기준으로 나누고 나머지를 그 나눈 문자열을 더한다는 생각으로 접근하였다.
이 생각으로 문제를 풀었을때는 값이 오답이 나왔었다.
왜냐하면 맨 처음수는 무조건 양수여야 하기 때문이다.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main  {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int sum = Integer.MAX_VALUE;
        String[] arr = br.readLine().split("-"); // - 문자열을 기준으로 나누어줌

        for(int i=0; i<arr.length; i++) {
            int tmp = 0;

            String[] add = arr[i].split("\\+");
            for(int j=0; j<add.length; j++) {
                tmp += Integer.parseInt(add[j]);
            }

            if(sum==Integer.MAX_VALUE) { //sum 을 첫번째 수로 바꾸어줌 (첫번째수는 항상 양수가 들어가야 함)
                sum = tmp;
            }else { //MAX_VALUE가 아니면 sum에서 tmp 값을 빼주어야함
                sum -= tmp;
            }
        }
        System.out.println(sum);

    }
}

sum에 Integer.MAX_VALUE로 초기화 한 이유는
문자열을 다 나눈후 처음 나온 토큰 즉 양수를 넣어주어야 하기 때문에
for문안에서 if(sum==Integer.MAX_VALUE)로 비교를 해주었다.

0개의 댓글