クイズを解いていて、アドバイスが必要です。
クイズの概要は次のとおりです。
ブックマークサービス(delicious、digg ...など)のデータを分析し、2つ以上の一般的なタグを持つURLのグループを抽出します。
- 各ブックマークデータには、1)user-id、2)url、および3)タグの配列が含まれています。
- すべてのタグのサイズは、すべてのURLと比較して比較的小さいです。つまり、人々は限られたセットでサイトをブックマークします
- URLに割り当てられたすべてのタグが異なります
- 異なるユーザーが同じURLをブックマークした場合は、それらからグループを作成しないでください(ただし、これはオプションの条件です。user_idを無視して、すべてのURLが異なると想定できます)。
例:
siteA - [tag1, tag2, tag3]
siteB - [tag1, tag2, tag4]
siteC - [tag1, tag3, tag5]
siteD - [tag1, tag2, tag6]
次の2つのURLグループが結果になります
(siteA, siteB, siteD), (siteA, siteC)
(siteA、siteB、siteD)は2つの共通タグ(tag1、tag2)を共有し、(siteA、siteC)も2つの共通タグ(tag1、tag3)を共有するためです。
--条件3,4および例が追加されました。ありがとう@btilly。
私の質問は
- どのように解決できるか(またはどのアルゴリズムを適用できるか)、実際に高速ですか?
- この質問と同様のアルゴリズムで解決できる代表的な問題はありますか?