백준 1541

Jb·2024년 3월 13일

생각의 흐름

1.최소-> -를 기준으로 빼는 쪽이 최대면 최소겠다!
2.문자열로 값을 받아 슬라이싱을 해서 처리를 하자!
3.+값은 어떻게 처리? ->+쪽도 슬라이싱을 해서 부분합으로 해결해보자

import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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

        int resultSum = 0;
        //분류를 해야한다
        //사용자에게 값을 받아오기 문자열로
        String input = br.readLine()
        String[] str = input.split("-");
        //몇개가 만들졌는지 확인해야해
        for (int i = 0; i < str.length; i++) {
            int partSum = 0;
            StringTokenizer remainStr = new StringTokenizer(str[i], "+");
            while (remainStr.hasMoreTokens()) {
                partSum += Integer.parseInt(remainStr.nextToken());
            }
            if (i == 0) {
                resultSum += partSum;
            } else resultSum -= partSum;
        }
        System.out.println(resultSum);
    }

}

느낀점.

아직 StringTokenizer와 split을 다루는데 미숙하고
인덱싱 개념이 부족한 것 같다.

0개의 댓글