広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 61 / 68
マップで集合演算(和集合・積集合・差集合)をしよう
このレッスンでは、Goのマップを使って和集合・積集合・差集合を求める方法を学び、集合演算の基本を理解することを目標にします。「Go言語 マップ 集合演算」で調べている方向けです。
Goには専用のSet型はありませんが、map[int]boolを使うと集合のように扱えます。それぞれのキーの有無を調べることで、「和集合」「積集合」「差集合」を計算できます。
サンプルコードでは、{1, 2, 3, 4}と{3, 4, 5, 6}という2つのマップに対して、それぞれの要素の有無を確認しながら和集合・積集合・差集合の結果を組み立て、sort.Intsで見やすい順序に並び替えてから表示しています。
初心者がよくつまずくのが、マップの中身の順序が保証されない点です。表示順序をそろえたい場合は、キーだけを取り出したスライスを別途sortする必要がある点に注意しましょう。
「両方のグループに共通するユーザー」を見つけたいときなど、実務のデータ処理でも役立つ考え方で、積集合や差集合の考え方はデータベースのSQLクエリにおける結合操作の理解にもつながります。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
2つのグループの共通点や違いを調べる処理が作れるようになります。
2つのグループの共通点や違いを調べる処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)