10分でコーディング|プログラミングに自信があるやつこい!!
Pythonで書いてみました。
「すべてのプレイヤーは同じ枚数のカードを受け取らなければいけない」以外の部分はほとんど考える必要がありませんでした。
むしろ、docstrings を書くほうに時間がかかったぐらいで・・・
アマグラマでも3分を切れたのは、Pythonの威力です。
#encoding:shift-jis from __future__ import division, with_statement, print_function def ideal(numPlayers, deck): sz = len(deck) // numPlayers for i in xrange(numPlayers): yield deck[i::numPlayers][:sz] def deal(*a, **kw): """ >>> deal(3, "123123123") ['111', '222', '333'] >>> deal(4, "123123123") ['12', '23', '31', '12'] >>> deal(1, "012345012345012345") ['012345012345012345'] >>> deal(6, "01234") ['', '', '', '', '', ''] >>> deal(2, "") ['', ''] """ return list(ideal(*a, **kw)) def main(): import doctest doctest.testmod() if __name__ == "__main__": main()