↑一応解答ができましたがエレガントな解答はないでしょうか?