ちゃぽーん

日記です。

6月8日はAtCoderのABC357でした

本日6月8日(土)は毎週恒例のAtCoderの日でした。
今回もやっぱり最初の2問だけしか解けませんでした。

A問題はすぐに解けるはずだったのです。
しかし、なんとなく解き始めてしまったために頭の中の整理ができずにツボってしまいました。
結局A問題に50分も使ってしまいました。

B問題はそれほど時間をかけずに解けたのですが、スマートな解き方じゃない気がしています。

atcoder.jp

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)

atcoder.jp

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())

atcoder.jp

関連記事

chapone.hatenadiary.org