A問題 Placing Marbles
1 2 |
s = input() print(s.count('1')) |
B問題 – Shift only
解答1 numpyなし
1 2 3 4 5 6 7 8 9 10 11 12 |
n = int(input()) a = input().split() #a = map((lambda x: int(x)), a) ans = 0 for j in range(10**9): for i in range(len(a)): if int(a[i]) % 2 != 0: print(ans) exit() elif int(a[i]) % 2 == 0: a[i] = int(a[i]) / 2 ans += 1 |
解答2 numpyあり
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import numpy as np n = int(input()) list = list(map(int,input().split())) list = np.array(list) [1] flag=False count =0 while count >=0: for i in list: if i%2!=0: flag=True break if flag: break count+=1 list = list//2 [★] print(count) |
参考
問題を解くために参考にしたサイトや書籍です。
・二重ループから抜け出す手順(B問題 解答1,2)
Pythonで多重ループ(ネストしたforループ)からbreak | note.nkmk.me
・リストからnumpy配列を作成する方法(B問題 解答2 [1])
NumPy配列ndarrayとPython標準のリストを相互に変換 | note.nkmk.me
・numpyのブロードキャスト(B問題 解答2 [★])
コメント