競技プログラミング

ABC081A – Placing Marbles

https://atcoder.jp/contests/abs/tasks/abc081_a

イントロダクション

今日、私たちはAtCoderの問題、「ビー玉の配置」に取り組みます。この問題を解くためには、Swift言語の基本的な構文と制御フローの理解が必要です。

問題の詳細説明

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

問題の要素解説

この問題は文字列操作とカウンティングの基本的なアプローチを必要とします。文字列内の特定の文字の数をカウントする方法を知っていれば解決できます。

解答戦略

  1. Swiftで文字列から特定の文字をカウントする方法を知る。
  2. 標準入力から文字列を読み取り、その中の’1’の数をカウントする。

コードの解説

まず、標準入力から文字列を読み込みます。次に、文字列の中で’1’がいくつあるかを数えるためにfilterメソッドを使います。

コード全文

以下にコードの全文を示します:

import Foundation

let inputs = readLine()!
let count = inputs.filter { $0 == “1” }.count
print(count)

テストケースと実行結果

以下のテストケースを試してみましょう:

入力例: “101” 出力例: “2”

入力例: “000” 出力例: “0”

このコードはこれらのテストケースで期待通りの結果を返します。

考察と最適化

この問題は比較的シンプルであり、今回のアプローチで効率的に解決できます。より複雑なケースでは、他のデータ構造を用いる可能性があります。

結論

今回の問題はSwiftの基本的な文字列操作と制御フローを用いて解決しました。競技プログラミングは問題解決スキルを磨くのに非常に役立つと感じています。

コメントとフィードバックの募集

コメントやフィードバックをお待ちしております。お気軽にご意見をお寄せください。

COMMENT

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