競技プログラミング

ABC306 A – Echo

トヨタ自動車プログラミングコンテスト2023#3(AtCoder Beginner Contest 306)トヨタ自動車プログラミングコンテスト2023#3(AtCoder Beginner Contest 306)

問題の要素解説

この問題は文字列処理という領域の問題で、入力として与えられた文字列の各文字を二回繰り返して新しい文字列を作り出力するという問題です。つまり、入力された文字列 “abc” に対して、出力は “aabbcc” となります。

Swiftには文字列やその中の文字を操作するための便利な機能が多く用意されていて、この問題もそれを利用することで簡単に解くことができます。具体的には、文字列を文字の配列として扱い、各文字を二回繰り返す操作を行い、その結果を再度文字列に変換することで解を得ることができます。

解答戦略

この問題を解くための戦略は以下の通りです。

  1. まず、入力された文字列Sを一文字ずつ取り出します。
  2. 取り出した各文字を二回繰り返します。
  3. それらを連結して新しい文字列を作ります。
  4. 新しい文字列を出力します。

この戦略を元に、実際のコードを書いてみましょう。

コードの解説

以下に、この問題を解くためのSwiftコードを示します。

let N = Int(readLine()!)!
let S = readLine()!

var result = “”
for char in S {
result += String(repeating: char, count: 2)
}

print(result)

コードの説明

  • import Foundation: Swiftの基本的なライブラリを読み込みます。
  • let N = Int(readLine()!)!: 整数Nを標準入力から読み込みます。Nは文字列Sの長さを表します。
  • let S = readLine()!: 文字列Sを標準入力から読み込みます。
  • var result = "": 結果を格納するための空の文字列を作ります。
  • for char in S: 文字列Sの各文字に対するループを作ります。
  • result += String(repeating: char, count: 2): 各文字を二回繰り返して文字列に変換し、それをresultに追加します。
  • print(result): 出力します。

このコードは、Swiftの文字列処理とループ構造を利用して、問題の要求を満たす新しい文字列を作成します。

COMMENT

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