AtCoder ABC 043 A&B&C
A問題
- 再帰で書くとstack over flowが怖いのでループ
private void solveA() {
int numN = nextInt();
long res = 0;
for (int i = 1; i <= numN; i++) {
res += i;
}
out.println(res);
}
B問題
- 'B'が来たらListからremove
private void solveB() {
char[] wk = next().toCharArray();
List<Character> res = new ArrayList<Character>();
for (char c : wk) {
if (c != 'B') {
res.add(c);
} else {
if (res.size() != 0) {
res.remove(res.size() - 1);
}
}
}
StringBuilder builder = new StringBuilder();
for (Character character : res) {
builder.append(character);
}
out.println(builder.toString());
}
C問題
- コストが $(x-y)^2$ かかる
- aiの範囲は $-100 \leqq ai<=100$
- どの数値にするとコストが最小になるのか?
/*
* コストが(x-y)^2かかる
* aiの範囲は -100<= ai<=100
* どの数値にするとコストが最小になるのか?
*/
private void solveC() {
int numN = nextInt();
int[] wk = IntStream.range(0, numN).map(i -> nextInt()).toArray();
long res = Long.MAX_VALUE;
/*
* -100 から 100まで全探索
*/
for (int i = -100; i <= 100; i++) {
long resTmp = 0;
for (int j = 0; j < wk.length; j++) {
resTmp += Math.pow((wk[j] - i), 2);
}
res = Math.min(res, resTmp);
}
out.println(res);
}