Keep Going

빠르지 않아도 꾸준히

백준/Silver

[실버 2] [Java] 백준 1541번: 잃어버린 괄호

금동진 2025. 9. 13. 10:08

아이디어

입력된 수식을 "-"를 기준으로 분할하면

예컨데 입력된 수식이 15+93-12+35-45라면

15+93

12+35

45

로 세 수식으로 분할되게 된다.

 

첫번째 수식을 연산하여 sum에 더하고

나머지 수식들은 연산 후 sum에 감하면 된다.

 

이를 코드로 구현하면 다음과 같다.

import java.io.*;

public class N1541 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String[] input = br.readLine().split("-");
        int sum = 0;
        int subsum = 0;

        String[] subequation = input[0].split("\\+");
        for (String num : subequation) {
            subsum += Integer.parseInt(num);
        }
        sum += subsum;
        subsum = 0;

        for (int i = 1; i < input.length; i++) {
            subequation = input[i].split("\\+");
            for (String num : subequation) {
                subsum += Integer.parseInt(num);
            }
            sum -= subsum;
            subsum = 0;
        }

        bw.write(sum + "\n");
        bw.flush();
        bw.close();
        br.close();
    }
}

 

코드를 짜고 보니 부분 수식들의 수를 합하는 과정의 코드가 같아서

이 부분은 함수로 만들어도 좋았을 것 같다.


아직 초보라 많이 서툴고 틀린 부분이 있을 수 있습니다. 고수분들께서 조언해주실만한 사항이 있으면 감사히 받겠습니다.