私は、移動の[string]int
マップを再帰的に通過する最良の方法を理解しようとしています。私は、複数の国が関わっているゲームを構築しており、最終的に2つのチームでグループに分かれています。異なるデータ構造を使用して再帰的にマップをループする方法
目標は最低の「スコア」を持つ2つの国を2つのグループに一致させ、コレクションに戻して新しいマップにそれらの国のスコアの合計値を与えることです。
その後、すべてのグループに対して再帰的に行い、最後に1つのグループと1つの合計値になります。例えば
、あなたが持っていた場合:今5の「スコア」で最初のコレクションに戻されることになる5
グループ1の合計で
score := map[string]int{
"Canada": 7,
"US": 2,
"Germany": 3,
"Korea": 4,
}
GROUP1 = {[US:2] [Germany:3]}
をそれがかかるため2つの最も低い得点。私たちは、今持っているでしょう:
score := map[string]int{
"Canada": 7,
"Korea": 4,
group1: `US:2 Germany:3` with a total of 5
}
これは今コレクションの中で最も低いスコアだった場合、次の反復は、次のようになりますように
グループ2 = {[Korea:4] [group1:5]}
score := map[string]int{
"Canada": 7,
group2: `Korea:4 group1:5` with a total of 9
}
そして、あなたがしているまで私は基本的な構造がこのようなものでなければならないと思う。しかし、データ構造が今度は[string]int
マップとこの新しいマップを包含しているので、これを行う適切な方法がわかりません。
これは一般的な質問ではありませんが、このためにインターフェイスを使用できますか?私は非常に新しいので、アドバイスが役立つだろう。ここで
はさらに私が何を意味するか説明する例です。 https://play.golang.org/p/cnkTc0HBY4
です。それは地図です。 – md2perpe
あなたは "3つの国の中で最も低いスコアを持つ最初の3つの国を3つのグループに一致させることが目標です"と書いています。 – md2perpe
ツリー構造はマップよりも適切ではないでしょうか? – md2perpe