読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

paizaってサービスで問題を問いてみた

Python

スポンサードリンク

http://www.flickr.com/photos/17364971@N00/3687395521
photo by FreeCat


こんなサービスがあります。


ITプログラマー・エンジニア転職のpaiza


趣味でプログラミングをしてきましたが、どのくらいのレベルなのか、せっかくなんで登録して試してみました。


試した問題は濁しますが、こんな感じで書きました。

# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!

# 半角スペース区切りの複数の単語が入力されて、その単語と数を出力しなさい。って問題

# 入力された単語順にソートしないといけないため
import collections
dictionary = collections.OrderedDict()

# 入力が複数回のため、ループさせる
while True:
    # raw_input()は入力がなくなるとエラーになるので、try 〜 exceptはループをbreakする
    try:
        # 入力される文字は半角スペース区切りなので、半角スペースsplit()では配列にする
        input_lines = raw_input().split(" ")
        for word in input_lines:
            # dictを用意して、新規のワードはdictに「1」を入力
            # 入っているワードにはvalueに+1する
            if dictionary.has_key(word):
                dictionary[word] = dictionary[word] + 1
            else:
                dictionary[word] = 1
    except:
        break

# 上のループを抜けたあと、答えを出力
for k,v in dictionary.iteritems():
        print k + " " + str(v)


さて、結果は・・・


f:id:aipacommander:20141206173504p:plain


Foooooooooooo!!!!



問題はとけたけど、プログラマとして良い書き方ができているのかわかんねぇなぁ(´・ω・)
※そもそも、短い行数なので、キレイかどうかよりも時間とか実行スピードとか、バランスが大事なのかな?


どんどん解いていくよー^^