自分用にAtCoderの解答をまとめていきます。誤った情報があったら、申し訳ございません。
覚えること
- setメソッド
Listクラスのsetメソッドは、1つ目の引数は書き換えたいList内の位置を指定し、2つ目の引数は実際の変更の仕方を指定できる。
コード
ABC049C_Daydream
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ABC081B_ShiftOnly {
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in)) {
int s = sc.nextInt();
int count = 0;
boolean judge = true;
List<Integer> arrayList = new ArrayList<>();
for (int i = 0; i < s; i++) {
int t = sc.nextInt();
arrayList.add(t);
}
while (judge) {
for (int i = 0; i < arrayList.size(); i++) {
int t = arrayList.get(i);
if (t % 2 != 0) {
judge = false;
break;
}
arrayList.set(i, t / 2);
}
if (judge) {
count++;
}
}
System.out.println(count);
}
}
}
感想&振り返り
わざわざArrayList使う必要ない気がします。要素数が先に決まっているなら、配列でいいんじゃないかなって今では思います。調べてみると、微妙に配列の方が処理速度は速いみたいですし、今後は配列で記述しようかなって思います。(このレベルだと多分変わらない気がしますが、)
参考にしたサイト