0
0

プログラミング練習問題「銀行」

Posted at

ひとまず前回と同じようにタプルで配列を組んでみたのですが
どうやって配列から参照するかで詰まってしまいました。
時間も長くかかってしまったので回答を見ました。

N,K = map(int,input())
companies = [None] * N
for i in range(N):
    name,password,bill = input().split()
    companies[i] = (name,int(password),int(bill))
    
for _ in range(K):
    name,password,bill = input().split()
    if companies[name] 
    #ここで詰まる

回答を見ると、タプルと辞書を組み合わせた感じで、
私はまだやったことがない方法でした。。。
勉強させてもらうということで、ちょっと自分なりにやってみました。

N,K = map(int,input().split())

companies = {}
#companies
for _ in range(N):
    company, password, balance = input().split()
    #辞書のキーをcompanyにして、パスと残高をタプルにする
    companies[company] = (password, int(balance))

#deal
for _ in range(K):
    company, password, deal = input().split()
    #タプルから変数で取得する
    pin, saving = companies[company]
    #パスワードが一致しなかったらスキップ
    if pin != password:
        continue
    #ふたたびタプルとして戻す
    companies[company] = (pin, saving - int(deal))

#現在の各会社名と残高を出力
for name, data in companies.items():
    print(name, data[1])

辞書とタプルの登録方法と、
タプルからは変数に代入させる方法でもどして
さらに計算をしてからタプルに戻すという感じに。

その後の出力は
辞書の出力は、キーは、keys 値は、values キー&値は items
でそれぞれ出力ができる。
さらに、上のように、それぞれ変数に格納して出力が可能なので覚えておきたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0