競技プログラミング

【超初心者向け】AtCoderで最初に解くべき過去問集を分かりやすく解説します【2問目】

プログラミング

こんにちは!サトシ(@satoshi365_blog)です!

 

この記事では、「AtCoderに登録して最初に解くべき10問(AtCoder Beginners Selection)」の2問目「Placing Marbles」をめちゃくちゃ分かりやすく解説していきます。

AtCoder で問題を解くためには、新規登録しないといけません。

新規登録はこちらから → AtCoder に新規登録する

 

それでは、「Placing Marbles」の解説をしていきます!

プログラミング
【競プロ】最初に解くべき過去問10問をPythonで分かりやすく解説します!【AtCoder】こんにちは!サトシ(@satoshi365_blog)です! この記事では、「競技プログラミング(AtCoder)に登録し...

2問目「Placing Marbles」で身につくスキル

この問題では、こんなスキルが身につきます。

身につくスキル
  • count() の使い方

先に、これがどのようなスキルなのかを説明します。

 

count() の使い方

count() を使うと、文字列の中に「ある文字」が何個入っているか数えられます。

‘10001011’ という文字列の中にある ‘1’ の個数を数えるときは、このようにします。

print('10001011'.count('1'))   #4 と出力します

2問目「Placing Marbles」の解説

この順番で解説していきます。

  • 問題文
  • 入力例と出力例
  • 解答例
  • 解説

それでは見ていきましょう。

 

問題文

 

問題文
すむけ君は 1, 2, 3 の番号がついた3つのマスからなるマス目を持っています。各マスには ‘0’ か ‘1’ が書かれており、マス i には siが書かれています。
すぬけ君は ‘1’ が書かれたマスにビー玉を置きます。ビー玉が置かれるマスがいくつあるか求めてください。

制約
・s1, s2, s3 は ‘1’ あるいは’0′

入力
入力は以下の形式で標準入力から与えられる。

s1s2s3

出力
答えを出力せよ。

ABC081A – Placing Marblesより引用

 

入力例と出力例

入力例

‘110’

出力例

2

 

解答例

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

解説

分かりづらく書いてはありますが、’1′ が書いてあるところにビー玉を置くだけです。

つまり、やることは、‘1’ の個数を数えるだけです。

 

では、コードを詳しく解説していきます。

 

input() で受け取った文字列に count() を使う。

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

 

これで、‘1’ の個数、つまりビー玉が置かれるマスを数えることができました。

 

まとめ

もし分からない点などありましたら、気軽にTwitterなどでご質問ください^^

少しでも参考になれば嬉しいです!

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です