ゆうは

わかりたいことを深堀り

AtCoderのABC357の振り返り

6月8日(土)はAtCoderABC357でした。

AtCoderの振り返りブログです。

A問題でつまづく

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)

A - Sanitize Hands

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

B - Uppercase and Lowercase

yuuuha.hatenablog.com