Free Trial

ウィークリーチャレンジ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #155: ラウンドロビン・トーナメント

SaoriG
Alteryx Alumni (Retired)

先週のチャレンジの解答は こちらで見つけることができます。

 

Weekly Challenge Image 307.png あなたは友達とテニスリーグを始めることに決めました。友達はあなたがデータについて詳しいことを知っていて、あなたにシーズンのスケジュールの作成を任せています。

 

この時点では、リーグに参加するチームの数やシーズンの長さはわかりません。参加するチームの数とシーズンの週数の2つの入力を持つアプリを作成することにしました。このアプリは、ラウンドロビントーナメントスケジュールを作成します。 このスケジュールでは、全ての参加チームが、全ての相手と同じ回数対戦します(入力に隔週が必要な場合を除く)。

 

「出力サンプル」は、たとえば5チームで5週間の場合、出力データの行がどのようになるかを示しています。

gawa
15 - Aurora
15 - Aurora

1年くらい前のWeeklyでもラウンドロビン系の問題があった気がします

スポイラ
私が勘違いしてるのかもですが、入力としてシーズンの長さいらなくないですか?
ラウンドロビンを適用する前提だと、チーム数Nが決まれば、WeekもNに決まってしまうと思うのですが・・・
gawa_0-1644913023959.png

 

Qiu
20 - Arcturus
20 - Arcturus
スポイラ
Challenge_ja_155.PNG
AkimasaKajitani
17 - Castor
17 - Castor

できました!が、週数の扱いがあってるかどうか微妙です・・・。

 

スポイラ
@gawa さん 確かに「チャレンジ #95: ペアをつくりましょう」で一度ありましたね!

週数の扱いに困ったので、最後にタイルツールでWeekを無理やり更新しています。そのため、週数とチーム数によっては一日に2試合しないと駄目なチームができてしまいます・・・。
チーム数が5ならちょうど5週になるんですよねぇ・・・。

AkimasaKajitani_0-1644937027534.png

 

これ、自力でやろうとすると結構苦しいですね・・・。

 

Qiu
20 - Arcturus
20 - Arcturus

@gawa 
自分もないです。😂

sanae
ボリード

あまりうまくできませんでした・・・。
組み合わせの重複はないのですが、TeamAとTeamBに偏りができてしまいます・・・。

スポイラ
Challenge ja_155_Start File_sanae.png
DaisukeTsuchiya
パルサー

昔のWeekly Challengeを参考にしました。

 

スポイラ
これはヒントなしだと解けないですね。皆さんのおっしゃる通り、週指定だとダブルヘッダーになってしまうケースも出てくるのでWeekly Challenge95と同じ考え方で算出した”Week”とInterfaceとタイルを使用して計算した”Week2”の両方を表示させるようにしました。


DaisukeTsuchiya_0-1644984570002.png

 

 

ntakeda
ボリード

かなり悩みましたが、満足のいく形になったので投稿します。

あまり確認していないので、間違っているかもしれません。

スポイラ
・1チームを固定して、ローテーションするようにしました。
・チーム数が奇数の場合、休みの日ができるのでダミーのチームを作り、ダミーと当たったチームは休みとしました。
・入力したWeeksの中で可能な限り周回するようにしました。(1周するのにチーム数-1かかる)

考慮できなかった点
・1チームを固定するため、チーム数が偶数の場合常にA Teamになるチームが存在してしまいます。

ntakeda_0-1664167724568.png

Yoshiro_Fujimori
オーロラ

ラウンドロビンの処理は#95を再利用しています。

スポイラ
Yoshiro_Fujimori_0-1668397651780.png
Yoshiro_Fujimori_2-1668397795814.png
Yoshiro_Fujimori_3-1668397819019.png

 

 

 

 

Tokimatsu
クエーサー

妙なところで悩んでしまいました。

スポイラ
5チーム5週の2試合ずつに割り当てるのはすぐできたんですが、チームとか週を変えたときになるべく均等にチームの週当たりの試合数が均等なほうがいいかなと考え始めたらきりがありませんでした。結局、深く考えないタイルを使った均等割りに落ち着きました。毎週午前中の試合がいいとか、一日に一試合しかしたくないとか、同じコートがいいとか、チーム少ないと総当たりを2回やるとか、なんだかいろいろありそうです。
Tokimatsu_0-1684144530104.png