はじめに
ロジックサマナーの問題をまた解きました。
少し AtCoder の問題解いたんですが、時間制限内に解けなくて悔しかったです。(B問題で終わりました...)
今回も正答したソースコードを下に載せます。
問題の概要
入力:
8
0 thequickbr
0 ownfoxjump
0 soverthela
0 zydog
1 jackdawslo
1 vemybigsph
1 inxofquart
1 z
出力:
0 thequickbrownfoxjumpsoverthelazydog
1 jackdawslovemybigsphinxofquartz
問題の概要を要約すると、入力されるのがチャットのログです。
左がチャットのIDで、右がチャットの内容として、同じIDであれば末字に結合して出力する。
といった感じです。
正答したソースコード
# 入力
n = int(input())
input_dic = {}
for _ in range(n):
(id, string) = input().split()
id = int(id)
if (id in input_dic):
input_dic[id] += string # 文字列の連結
else :
input_dic.update({id : string})
# 出力
for id in input_dic:
print(id, input_dic[id])
入力されるチャットを辞書型で管理して、新しいIDがあれば新しく辞書型のデータを作成する。
既に存在するIDであれば、文字列の末尾に加えていく。
最後に、IDごとに作成したディクショナリを出力して、終了。
終わりに
最近辞書型使ってなかったので、使い方とか再確認できました。
ちなみに、for文で辞書型のデータを一つずつ取り出したかったんですが、keyの部分が取り出されるようです。
てっきり、リストとか同じように取り出せると思ってました。
以上、