寝癖頭の解法

勉強中の覚え書きを投稿、更新していきます。

paizaラーニング: Pythonによる「Bランクレベルアップメニュー」問題集: 占い

paizaラーニングのレベルアップ問題集「Bランクレベルアップセット」からの出典です。
paiza.jp
Pythonによる「占い」問題集と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 連想配列(辞書)を使う
 「ユーザー」と「ユーザーに対応する血液型」を連想配列(辞書)として定義して、それらのキーと値のペアを順に出力してください。

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 占い
STEP: 1 連想配列(辞書)を使う
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
dic = {"Kyoko":"B", "Rio":"O", "Tsubame":"AB", "KurodaSensei":"A", "NekoSensei":"A"}
for k, v in dic.items():
    print(k, v)

・STEP: 2 ユーザーの血液型のデータ処理
 n 行のユーザーと血液型の組が与えられるので、ユーザーをキー、血液型を値として、連想配列(辞書)に保存してください。
 そのあとで連想配列(辞書)をそのまま表示してください。

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 占い
STEP: 2 ユーザーの血液型のデータ処理
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
dic = {}
n = int(input())
for i in range(n):
    foo, bar = input().split()
    dic[foo] = bar
for k, v in dic.items():
    print(k, v)

・STEP: 3 1人の血液型
 1行目でユーザーが1つ与えられます。
 n 行のユーザーと血液型の組が与えられるので、ユーザーをキー、血液型を値として、連想配列(辞書)に保存してください。
 その連想配列(辞書)の中で1行目で与えられたユーザー名と、ユーザー名に対応する血液型を表示してください。

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 占い
STEP: 3 1人の血液型
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
dic = {}
s = input()
n = int(input())
for i in range(n):
    foo, bar = input().split()
    dic[foo] = bar
print(s, dic[s])

・STEP: 4 1つの血液型を占う
 1行目で血液型が1つ与えられます。
 m 行の血液型と占い結果の組が与えられるので、血液型をキー、占い結果を値として、連想配列(辞書)に保存してください。
 その後、1行目で与えられた血液型に対応する占い結果を表示してください。

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 占い
STEP: 4 1つの血液型を占う
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
dic = {}
t = input()
m = int(input())
for i in range(m):
    foo, bar = input().split()
    dic[foo] = bar
print(dic[t])

・STEP: 5 1人の占い結果
 最初に「ユーザー」 U が1つ与えられます。
 続いて n 人の「ユーザー」と「ユーザーに対応する血液型」が与えられます。
 続いて m 種類の「血液型」と「血液型に対応する占い結果」が与えられます。
 与えられたユーザー U に対応する占い結果を表示してください。
 入力例の1つ目は、ユーザーの血液型についてのラッキーカラーの占いです。
 入力例の2つ目は、ユーザーの星座についてのラッキーパーソンの占いになっています。
 「血液型」として「星座」などのさまざまな文字列を利用できるようにすることで、他の占いにも対応する必要があることに注意してください。

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 占い
STEP: 5 1人の占い結果
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
U = input()
dic1 = {}
n = int(input())
for i in range(n):
    foo, bar = input().split()
    dic1[foo] = bar
dic2 = {}
m = int(input())
for i in range(m):
    foo, bar = input().split()
    dic2[foo] = bar
ans = dic1[U]
print(dic2[ans])

・FINAL問題: 占い
 「ユーザー」と「ユーザーに対応する血液型」、「血液型」と「血液型に対応する占い結果」が与えられます。
 それぞれのユーザーに対応する占い結果を表示してください。
 入力例の1つ目は、ユーザーの血液型についてのラッキーカラーの占いです。
 入力例の2つ目は、ユーザーの星座についてのラッキーパーソンの占いになっています。
 「血液型」として「星座」などのさまざまな文字列を利用できるようにすることで、他の占いにも対応する必要があることに注意してください。

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 占い
FINAL問題: 占い
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
dic1 = {}
n = int(input())
for i in range(n):
    foo, bar = input().split()
    dic1[foo] = bar
dic2 = {}
m = int(input())
for i in range(m):
    foo, bar = input().split()
    dic2[foo] = bar
for k in dic1.keys():
    ans = dic1[k]
    print(k, dic2[ans])

連想配列(辞書)についての問題です。

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。