このページについて
このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。
見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。
挑戦する課題
レベルアップ問題集の配列活用メニューから「要素の種類数 (paizaランク D 相当)」を取り上げます。
以下は、問題公開 Web ページからの引用です。
問題
配列 A の要素数 N と配列 A の各要素 A_1, A_2, …, A_N が与えられるので、配列 A には何種類の値が含まれているかを求めてください。
入力される値
1 2 3 4 |
N A_1 ... A_N |
- 1 行目では、配列 A の要素数 N が与えられます。
- 続く N 行では、配列 A の要素が先頭から順に与えられます。
期待する出力
配列
A に含まれている値の種類数を 1 行で出力してください。
また、出力の末尾には改行を入れてください。
考え方
執筆中
Set を使うと重複がなくなるので便利。
解答例
1 2 3 4 5 6 7 8 |
// 1. 一度配列として最後まで取り込み // 2. 先頭行を削除し // 3. Int に変換し、 // 4. それを Set のイニシャライザに渡して重複のないコレクションにし // 5. 要素数をカウントする print(Set(Array(AnyIterator { readLine() }) .dropFirst() .map { Int($0)! }).count) |