10分でコーディングをPythonで


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()