Closed ffinn92 closed 2 years ago
🏋️♀️ 시도횟수 : -회 | ⏱ 걸린시간 : -ms | 💾 메모리 : -MB
시도횟수
걸린시간
메모리
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class If504PostFix { public int solution(char[] arr) { // Stack<Character> st = new Stack<>(); // // st.push(arr[arr.length-2]); // st.push(arr[arr.length-1]); // // // //stack push 부분 // for (int i = arr.length - 3; i >= 0 ; i--) { // if(st.peek() == '+' || st.peek() == '-' || st.peek() == '*' || st.peek() == '/'){ // st.push() // }else{ // // } // // } // // //stack에서 pop하여 계산하는부분 // for (int i = 0; i < ; i++) { // // } Stack<Character> st = new Stack<>(); int right; int left; char equal; for (int i = 0; i < arr.length; i++) { if(arr[i] == '+') { right = Character.getNumericValue(st.pop()); left = Character.getNumericValue(st.pop()); equal = Character.forDigit((left + right), 10); st.push(equal); }else if(arr[i] == '-'){ right = Character.getNumericValue(st.pop()); left = Character.getNumericValue(st.pop()); equal = Character.forDigit((left - right), 10); st.push(equal); }else if(arr[i] == '*'){ right = Character.getNumericValue(st.pop()); left = Character.getNumericValue(st.pop()); equal = Character.forDigit((left * right), 10); st.push(equal); }else if(arr[i] == '/'){ right = Character.getNumericValue(st.pop()); left = Character.getNumericValue(st.pop()); equal = Character.forDigit((left / right), 10); st.push(equal); }else{ st.push(arr[i]); } } return Character.getNumericValue(st.pop()); } public static void main(String[] args) throws IOException { If504PostFix T = new If504PostFix(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); char[] arr = new char[input.length()]; for (int i = 0; i < input.length(); i++) { arr[i] = input.charAt(i); } System.out.println(T.solution(arr)); } }
📌 문제
⭐️ 아이디어
🤔 고민한 내용
💪 새롭게 배운 내용
🆘 이해가 어려운 내용
❌ 해결하지 못한 이유
✅ 본인 풀이
🏋️♀️
시도횟수
: -회 | ⏱걸린시간
: -ms | 💾메모리
: -MB참고한 자료