본문 바로가기
Problem Solving/Baekjoon

[백준] 15815 천재 수학자 성필 - Data Structure / Java

by graycode 2025. 12. 3.

 문제 링크

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

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        Stack<Integer> stk = new Stack<>();
        for (char c : br.readLine().toCharArray()) stk.push(isDigit(c) ? c - '0' : calc(c, stk.pop(), stk.pop()));

        bw.write(String.valueOf(stk.peek()));
        bw.flush();
    }

    private static boolean isDigit(char c) {
        return c >= '0' && c <= '9';
    }

    private static int calc(char op, int a, int b) {
        if (op == '+') return a + b;
        else if (op == '-') return b - a;
        else if (op == '*') return a * b;
        else return b / a;
    }

}

댓글