便乗してPythonでやってみた
簡単な問があったのでPythonでやってみた - 牌語備忘録
元の問題は、10分でコーディング|プログラミングに自信があるやつこい!!からです。
とりあえず10分目標で何も考えずに書いたのがこれ。
#!usr/bin/env python # -*- coding: utf-8 -*- def cards(num, card): length = len(card) / num order = ["" for x in range(num)] for i, j in enumerate(card): if len(order[num-1]) == length: break order[i % num] += j return order
ちゃんと時間計ってないけど、10分は超えた。しかも超汚い。
自分はかなりプログラミングができない。
とつらい事実を認識しました\(^o^)/
あんまり汚いままなのも気持ち悪いので、+10分くらいかけて精一杯綺麗にしたのがこれ。
#!usr/bin/env python # -*- coding: utf-8 -*- def deal(num, cards): print "args: %d, '%s'" % (num, cards) order = num * [""] for i, j in enumerate(cards[:len(cards)/num*num]): order[i%num] += j return order if __name__ == "__main__": print deal(4, "123123123") print deal(3, "123123123") print deal(6, "012345012345012345") print deal(4, "111122223333") print deal(1, "012345012345012345") print deal(6, "01234") print deal(2, "")
実行結果
10:37 ama-ch% python cards.py [~/python] args: 4, '123123123' ['12', '23', '31', '12'] args: 3, '123123123' ['111', '222', '333'] args: 6, '012345012345012345' ['000', '111', '222', '333', '444', '555'] args: 4, '111122223333' ['123', '123', '123', '123'] args: 1, '012345012345012345' ['012345012345012345'] args: 6, '01234' ['', '', '', '', '', ''] args: 2, '' ['', '']