UpDown Dev Story
후위식 연산 (Stack) 본문
아래 강의를 보면서 연습하고 기록하고 있습니다
문제
코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.next();
Stack<Integer> stack = new Stack<>();
for (char c : input.toCharArray()) {
if (Character.isDigit(c)) {
stack.push(c - 48); // 아스키 코드 값으로 48이 0이므로 제대로 계산되려면 꼭 48 뺴야함
} else {
int right = stack.pop();
int left = stack.pop();
switch (c) {
case '+':
stack.push(left + right);
break;
case '-':
stack.push(left - right);
break;
case '/':
stack.push(left / right);
break;
case '*':
stack.push(left * right);
break;
}
}
}
System.out.println(stack.get(0).intValue());
}
}
'Algorithm' 카테고리의 다른 글
교육과정 설계 (Queue) (0) | 2021.07.07 |
---|---|
공주 구하기 (Queue) (0) | 2021.07.06 |
아나그램 (HashMap) (0) | 2021.07.05 |
알고리즘 연습 - K번째 큰 수 ( TreeSet ) (0) | 2021.06.23 |
알고리즘 연습 - 학급회장(HashMap) (0) | 2021.06.23 |
Comments