잃어버린 괄호 1541

LJM·2023년 3월 14일
0

백준풀기

목록 보기
139/259

https://www.acmicpc.net/problem/1541

문자를 숫자로 바꾸고
숫자들을 연산처리하는 부분이 시간이 걸리긴 했지만
어려운 문제는 아니었다

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

        String input = br.readLine();
        ArrayList<Integer> arr = new ArrayList<>();
        ArrayList<Character> oper = new ArrayList<>();

        int idx = 0;
        boolean allsub = false;
        for (int i = 0; i < input.length(); ++i)
        {
            Character c = input.charAt(i);
            if(c == '+' || c == '-')
            {
                if(c == '-')
                    allsub = true;

                String num = input.substring(idx, i);
                arr.add(Integer.parseInt(num));

                idx = i+1;

                if(allsub)
                    oper.add('-');
                else
                    oper.add(c);
            }
            else if(i == input.length()-1)
            {
                String num = input.substring(idx, i+1);
                arr.add(Integer.parseInt(num));
            }
        }

        int sum = 0;

        for (int i = 0; i < arr.size(); ++i)
        {
            if(i > 0)
            {
                if(oper.get(i-1) == '+')
                    sum += arr.get(i);
                else
                    sum -= arr.get(i);
            }
            else
                sum = arr.get(i);

        }

        System.out.println(sum);
    }

}
profile
게임개발자 백엔드개발자

0개의 댓글