💡

【AtCoder解説】ABC081A - Placing Marbles を解いた記録

に公開

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

問題概要

入力として3桁の文字列(0または1)が与えられ、その中に含まれる「1」の個数を出力する問題。

解放とコード

lists = list(input())
count = 0
for l in lists:
  if l == '1':
    count += 1
print(count)

配列にして全て数え上げる

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

  • list()を使うことで引数の文字列は一文字づつの配列となる。
  • 久しぶりにpythonを使ったが、ネストだけでは見づらいなと感じた。

別解

a = int(input(), 2)
b = 0

if(a == 1 or a == 2 or a ==4):
  b = 1
if(a == 3 or a == 5 or a ==6) :
  b = 2
if(a == 7):
  b = 3

print(b)

10進数に変えて処理する

綺麗な回答

s = input()
print(s.count('1'))

forループもなしで完結

Discussion