ネットワークを使ったdataのやりとりが全然進まず、自己嫌悪に陥ったので、以下の問題をやりました。
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_3_A
逆ポーランド記号の問題?
ただプッシュして、計算するだけなので、簡単だった。
ただ答えには、最後改行がないとpresentation errorがでるので、
注意が必要です。
冗長性がありますが、めんどくさい
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
class Main {
static StringBuilder builder = new StringBuilder();
public static void main(String[] args) throws NumberFormatException,
IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
final String[] str = reader.readLine().split(" ");
System.out.println(String.valueOf(getReversePolishResult(str)));
}
private static int getReversePolishResult(final String str[]){
ArrayList
for(int i = 0;i < str.length;++i){
final int lastIndex = list.size();
switch(str[i].charAt(0)){
case '+':{
final int num = list.get(lastIndex - 2) + list.get(lastIndex - 1);
list.remove(lastIndex - 1);
list.remove(lastIndex - 2);
list.add(num);
break;
}
case '-':{
final int num = list.get(lastIndex - 2) - list.get(lastIndex - 1);
list.remove(lastIndex - 1);
list.remove(lastIndex - 2);
list.add(num);
break;
}
case '*':{
final int num = list.get(lastIndex - 2) * list.get(lastIndex - 1);
list.remove(lastIndex - 1);
list.remove(lastIndex - 2);
list.add(num);
break;
}
default:
list.add(Integer.parseInt(str[i]));
break;
}
}
return list.get(0);
}
}