본문 바로가기
Beakjoon&프로그래머스/Java

[백준/Java] 15815번 천재 수학자 성필

by 현장 2026. 2. 7.

-Code

import java.io.*;
import java.util.ArrayDeque;
import java.util.Deque;

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

        String line = br.readLine();

        Deque<Integer> deq = new ArrayDeque<>();
        for (char ch : line.toCharArray()) {
            if (Character.isDigit(ch)) {
                deq.addLast(ch - '0');
            } else {
                int num1 = deq.pollLast();
                int num2 = deq.pollLast();

                int temp = 0;
                if (ch == '+') {
                    temp = num1 + num2;
                } else if (ch == '-') {
                    temp = num2 - num1;
                } else if (ch == '*') {
                    temp = num1 * num2;
                } else {
                    temp = num2 / num1;
                }
                deq.addLast(temp);
            }
        }
        System.out.println(deq.poll());
    }
}

deq를 2개로 해서 풀려고 했으나 로직이 꼬여서 찾아보니 후위 표기법에 대해서 알아야 했습니다. 그래서 해당 방법을 가지고 구현을 했으나 -와 /인 경우 숫자를 바꿔서 해줘야 했는데 반대로 하여 한 번 더 틀렸었습니다.