말랑한 하루

[SW Expert Academy] 1223 계산기 2 [Java] 본문

문제풀이/SWexpert Academy

[SW Expert Academy] 1223 계산기 2 [Java]

지수는말랑이 2021. 2. 7. 23:37
반응형

[ 핵심풀이 ]

후위표기식을 사용한다.

이 문제는 괄호가 존재하지않으므로 바로 계산하여도 무방하다.

1224 계산기 3문제에서는 후위표기식에 대해서 다루므로 알아두도록하자.

[ Java ]

import java.util.Scanner;
import java.util.Stack;
public class _1223_계산기2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for (int t = 1; t <= 10; t++) {
            int len = sc.nextInt();
            String temp = sc.next();
            Stack<Integer> s = new Stack<Integer>();
            s.push(Integer.parseInt(temp.charAt(0)+""));
            for (int i = 1; i < len-1; i += 2) {
                if (temp.charAt(i) == '+')
                    s.push(Integer.parseInt(temp.charAt(i + 1)+""));
                else
                    s.push(s.pop() * Integer.parseInt(temp.charAt(i + 1)+""));
            }
            int result = 0;
            while (!s.isEmpty())
                result += s.pop();
            System.out.println("#" + t+" " + result);
        }
    }
}
반응형
Comments