条件を整理する問題

2022年第1回の問題です。

A,B,C,Dの4人のうち1人だけ赤い帽子をかぶり,残りの3人は白い帽子をかぶっています。この4人が縦に1列に並んで次のような発言をしました。
 A「私のすぐ後ろの人は赤色の帽子だ。」
 B「Dは私より前にいる。」
 C「私の帽子は白色だ。私より前の人は全員白色の帽子だ。」
 D「私のすぐ後ろの人は白色の帽子だ。」
この発言がすべて正しいとき,4人の並んでいる順を前から順に答えなさい。

【解説と解答】
条件を並べてみます。
Aのすぐうしろは赤→Aは赤ではない→Aは白
DはBより前
Cは白、Cより前は白
Dのうしろは白、
から赤はDかBです。
Bが赤だとすると、Bの前はA、Dは1番目か2番目で白、Cの前は白、だからCが2番目、Dが1番目となります。
D(白)C(白)A(白)B(赤)
Dが赤だとすると、Aの後ろがD、DのうしろがC(白)かB(白)
A(白)D(赤)B(白)C(白)にするとCの前が全員白にならないので×。
A(白)D(赤)C(白)B(白)でもCの前が全員白にならないので×。
したがって答えはD(白)C(白)A(白)B(赤)
(答え)DCAB