설명
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다.
입력
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.
식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다.
출력
연산한 결과를 출력합니다.
예시 입력 1
352+*9-
예시 출력 1
12
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
Stack<Integer> stack = new Stack<>();
for (char c : s.toCharArray()) {
int lt;
int rt;
if (Character.isDigit(c)) {
stack.push(Integer.valueOf(String.valueOf(c)));
} else {
rt = Integer.parseInt(String.valueOf(stack.pop()));
lt = Integer.parseInt(String.valueOf(stack.pop()));
int result = 0;
if (c == '+') result = lt + rt;
else if (c == '-') result = lt - rt;
else if (c == '*') result = lt * rt;
else if (c == '/') result = lt / rt;
stack.push(result);
}
}
System.out.println(stack.get(0));
}
}
'코딩연습이 좋아서 > 이론이 좋아서' 카테고리의 다른 글
Stack, Queue(자료구조) - 공주 구하기 (0) | 2024.12.06 |
---|---|
Stack, Queue(자료구조) - 쇠막대기 (0) | 2024.12.06 |
Stack, Queue(자료구조) - 크레인 인형뽑기(카카오) (0) | 2024.12.06 |
Stack, Queue(자료구조) - 괄호문자제거 (0) | 2024.12.06 |
Stack, Queue(자료구조) - 올바른 괄호 (0) | 2024.12.06 |