A – Two Rectangles
1 2 3 4 5 6 7 8 |
a,b,c,d = map(int, input().split()) if a*b > c*d: print(a*b) elif a*b < c*d: print(c*d) else: print(c*d) |
B – Increment Decrement
1 2 3 4 5 6 7 8 9 10 11 12 13 |
n = int(input()) s = input() list = [0] count = 0 for i in range(n): if s[i] == 'I': count += 1 list.append(count) elif s[i] == 'D': count -= 1 list.append(count) print(max(list)) |
C – Bugge
方針
・全ての入力が10で割り切れるときは0を出力
・10で割り切れない入力があるときは以下の通り
→合計が10で割り切れる場合は、10で割り切れない最小値を合計から引いた値を出力
→合計が10で割り切れない場合は、そのまま出力
解答
コード+コメント
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import numpy as np n = int(input()) list = [] for i in range(n): s = int(input()) list.append(s) np_list = np.array(list) #全ての入力値が10で割り切れる場合。np.allは参考記事を参照 if np.all(np_list%10==0): print(0) #10で割り切れない値が1つ以上あり、合計が10で割り切れる場合 elif sum(list)%10==0: #入力された値のうち、小さい方から判定を行うため並べ替え list.sort() ans = sum(list) #入力された値のリストを全て調べる for i in list: #入力された値のうち、10で割り切れない値だった場合 if i%10!=0: #合計値からその値を引く ans-=i exit(print(ans)) #10で割り切れない値が1つ以上あり、合計が10で割り切れない場合 else: print(sum(list)) |
コードのみ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import numpy as np n = int(input()) list = [] for i in range(n): s = int(input()) list.append(s) np_list = np.array(list) if np.all(np_list%10==0): print(0) elif sum(list)%10==0: list.sort() ans = sum(list) for i in list: if i%10!=0: ans-=i exit(print(ans)) else: print(sum(list)) |
参考
np.allはnumpy配列の全ての要素が条件に合致するかをBoolean(TrueかFalseのどちらか)で返してくれます。
NumPyのall関数とany関数の使い方 – DeepAge
※わかりやすいです
numpy.all — NumPy v1.22 Manual
※英語ですが、公式です。なるべく一次情報に当たりたいですね。
コメント