競プロおぼえがき

おぼえがきのためのブログ

yukicoder | No.49 算数の宿題

  • 問題

No.49 算数の宿題 - yukicoder

  • 概要

足し算と掛け算の問題が渡されるので計算をする。
ただし足し算の記号が"*"で掛け算の記号が"+"になっている。
計算の優先度はなく左から順番に計算をする。

  • 考え方

渡された文字列の"*"と"+"を"_*_"と"_+_"に置換して"_"で文字列の分割をする。
分割後の配列が数字と演算子の配列になるのであとは左から順番に計算していくだけ。

import java.util.Scanner;
public class Main {
    static Scanner in = new Scanner(System.in);
    public static void main(String[] args) {
        String[] s = in.nextLine().replaceAll("(\\+|\\*)", "_$1_").split("_");
        int sum = Integer.parseInt(s[0]);
        for(int i = 1; i < s.length; i += 2){
            if(s[i].equals("+")){
                sum *= Integer.parseInt(s[i + 1]);
            }else if(s[i].equals("*")){
                sum += Integer.parseInt(s[i + 1]);
            }
        }
        System.out.println(sum);
    }
}