本日6月8日(土)は毎週恒例のAtCoderの日でした。
今回もやっぱり最初の2問だけしか解けませんでした。
A問題はすぐに解けるはずだったのです。
しかし、なんとなく解き始めてしまったために頭の中の整理ができずにツボってしまいました。
結局A問題に50分も使ってしまいました。
B問題はそれほど時間をかけずに解けたのですが、スマートな解き方じゃない気がしています。
A - Sanitize Hands
消毒できる手の本数(M)よりも宇宙人のすべての手の数が少ない場合のことが抜けていました。
if sum(H) < M: ans = len(H)
これがなかったためになかなか正解にできませんでした。
N, M = map(int, input().split()) H = list(map(int, input().split())) total = 0 ans = 0 i = 0 if sum(H) < M: ans = len(H) else: while i < N: total += H[i] if total == M: ans = i+1 break elif total > M: ans = i break i += 1 print(ans)
B - Uppercase and Lowercase
問題文を読んで順番にコードにしていった感じなのでなんか違う気もしたのですが、無事に正解になりました。
S = input() u = [] l = [] for i in range(len(S)): if S[i].isupper(): u.append(S[i]) else: l.append(S[i]) if len(u) > len(l): print(S.upper()) else: print(S.lower())