このページについて
このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。
見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。
挑戦する課題
レベルアップ問題集の配列活用メニューから「指定位置への要素の追加 (paizaランク D 相当)」を取り上げます。
以下は、問題公開 Web ページからの引用です。
問題
配列 A と追加する位置 n と追加する要素 B が与えられるので、B を A_n の後ろに追加した後の A を出力してください。
入力される値
1 2 3 4 5 |
N A_1 ... A_N n B |
- 1 行目では、配列 A の要素数 N が与えられます。
- 続く N 行では、配列 A の要素が先頭 (A_1) から順に与えられます。
- 最後の行では、数値を追加する要素番号 n と、追加する値 B が与えられます。
期待する出力
1 2 3 |
A_1 ... A_(N+1) |
- 配列 A に B を追加した後の A の全ての要素を以上の形式で出力してください。
- また、出力の末尾には改行を入れてください。
考え方
執筆中
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 先頭行を切り落として末尾まで読み込む var sa = Array(AnyIterator { readLine() }) .dropFirst() .map{ String($0) } // 末尾行が挿入する文字と場所になるので、そこだけ取得する // 空白で区切り、String にする let a = sa.last!.split(separator: " ") .map{ String($0) } // 指定された位置に要素を挿入する sa.insert(a[1], at: Int(a[0])!) // 挿入された配列の末尾は余分なので切り落とし、行を変えて出力する sa.dropLast().forEach { print($0) } |