📖

【AtCoder解説】ABC081B - Shift Only を解いた記録

に公開

本記事は、AtCoder の問題を解いて得た知見を記録するための学習ログです。
毎回1問ずつ、「何を考えて解いたか」「どう実装したか」「学んだこと」を簡単にまとめていきます。

問題概要

奇数になるまで2でわる問題

解放とコード

n =input()
s = [*map(int, input().split())]
count = 0
while True:
  for i in range(len(s)):
    if s[i] % 2 == 1:
      break
    s[i] = int(s[i] / 2)
  else:
    count += 1
    continue
  break
print(count)

set()

解きながら考えたこと・学んだこと・感じたこと

  • for-elseがある
  • elseはforがbreakされずに一周した時にelseに行く
  • それを利用して多重ループを抜ける

AIの評価

  • int(s[i] / 2) より s[i] // 2 を使おう

綺麗な回答

_ = input()
s = list(map(int, input().split()))
count = 0

while all(x % 2 == 0 for x in s):
    s = [x // 2 for x in s]
    count += 1

print(count)

Discussion