백준 1541번 - 잃어버린 괄호

장근영·2024년 11월 13일
0

BOJ - 그리디

목록 보기
31/35

문제

백준 1541번 - 잃어버린 괄호


아이디어

  • 최소로 만들기 위해서는 최대한 큰 수를 빼야한다.
  • 식을 빼기(-)로 구분하면 자연스럽게 더하기(+)만 있는 식에 괄호를 치는 효과를 볼 수 있다.
  • 구분된 식들을 다시 더하기로 구분해서 모두 더해주고, 차례대로 뺄셈을 해주면 된다.
  • 대신 첫 번째 식은 덧셈을 해주어야 한다.

예상 시간 복잡도

  • 예상 시간 복잡도 : O(N)

코드 구현

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

public class BJ_1541 {
    public static void main(String[] args) throws IOException {
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] s = br.readLine().split("-");

        boolean first = true;

        int ans = 0;

        for (String str : s) {

            int sum = getSum(str);

            if (first) {
                first = false;
                ans += sum;
            } else {
                ans -= sum;
            }
        }

        System.out.println(ans);
    }

    private static int getSum(String str) {

        String[] split = str.split("\\+"); //escape

        int sum = 0;

        for (String s : split) {
            sum += Integer.parseInt(s);
        }

        return sum;
    }
}

profile
오늘 할 일을 내일로 미루지 말자.

0개의 댓글