SWEA_D4_1223
π [D4_1223] κ³μ°κΈ°2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Solution {
static StringTokenizer st;
static String temp = "";
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
for (int t = 1; t <= 10; t++) {
sb.append("#").append(t).append(" ");
// κ³μ°μ κΈΈμ΄
int N = Integer.parseInt(br.readLine());
// λ¬Έμμ΄
String str = br.readLine();
Stack<String> stack = new Stack<String>();
// 첫λ²μ§Έ μ μ
λ ₯
stack.add(String.valueOf(str.charAt(0)));
for (int i = 1; i < N; i++) {
stack.add(String.valueOf(str.charAt(i)));
// μ°μ°μ λ§λ¬μ λ
if(stack.peek().equals("*")) {
temp = stack.pop();
continue;
}
else if(stack.peek().equals("+")) {
continue;
}
// μ«μμΈ κ²½μ°
else {
if(temp.equals("*")) {
int sum = Integer.parseInt(stack.pop())*Integer.parseInt(stack.pop());
stack.add(String.valueOf(sum));
temp = "";
}
else {
continue;
}
}
}
int sum =0;
int size= stack.size();
for(int i=0; i<size; i++) {
// μ°μ°μ λ§λ¬μ λ
if(stack.peek().equals("+")) {
stack.pop();
continue;
}
// μ«μμΈ κ²½μ°
else {
sum += Integer.parseInt(stack.pop());
}
}
sb.append(sum);
sb.append("\n");
}
System.out.println(sb);
}
}
π€ λμ μκ°
μ΄ λ¬Έμ λ ꡬ쑰λ λμΌνλ€. κ·Έλ¬λ β*βμ΄ μΆκ°λμλ€.
μ 체 λ¬Έμμ΄μ μμλλ‘ STACKμ λ°μμ μ°μ°μλ₯Ό λ§λλ©΄ pop νμ¬ λ°λ‘ κ³μ°ν΄μ£Όλλ‘ νμλ€.
μ¬κΈ°μ μ£Όμν μ μ μ°μ°μμμ΄λ€. κ³±μ
μ΄ λ§μ
λ³΄λ€ λ¨Όμ μ΄κΈ° λλ¬Έμ
λλ κ³±μ
μ°μ°μ λ€ν΄μ€ λ€ λ¨μ κ²μ κ°μ§κ³ λ§μ
μ°μ°μ ν΄μ£Όμλ€.
λ§μ
μ°μ°μ λΆλΆμμ stack.size()κ° popλλ¬Έμ κ³μ λ³νλ€λ κ²μ μκ°νμ§ λͺ»ν΄μ μ λ₯Ό λ¨Ήμλ€.
κ·Έλμ sizeλΌλ λ³μλ₯Ό ν΅ν΄ μ²μ μ¬μ΄μ¦λ‘ κ³ μ μμΌ μ£Όμλ€.