はてブロ@ama_ch

https://twitter.com/ama_ch

便乗して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, ''
['', '']