問題
(引用開始)
400:名前:名無しさん@涙目です。(岐阜城):2011/10/15(土) 18:51:50.10 ID:eMBuD7fo0
某所から拾ってきた。
「これが10分でできない人は自分がかなりプログラミングができないというつらい事実を認識しましょう。」だそうな。
人数とカードが与えられたとき、分配後のカードを配列として返す関数を作成せよ。
カードは与えられた文字列の前から順番に配られ、配られるカードの枚数は均等で余りは無視することとする。
(引用終了)
http://qiita.com/hisui@github/items/b47c411437d60440a605
回答
問題を明確には理解できなかったけど、以下のような感じだろうか。かかった時間は約5分くらい。
def card_distributer(number, cards):
card_list = [ [] for i in range(number) ]
while ( len(cards) // number ) > 0:
for i in range(number):
card_list[i].append(cards.pop(0))
return card_list
print card_distributer(3,['SA', 'S2', 'S3', 'S4', 'S5', 'S6', 'S7', 'S8', 'S9', 'S10', 'SJ', 'SQ', 'SK'])
出力
[ ['SA', 'S4', 'S7', 'S10'], ['S2', 'S5', 'S8', 'SJ'], ['S3', 'S6', 'S9', 'SQ'] ]