この記事では
プログラミング学習サービスpaizaラーニングの
スキルチェックレベルアップ問題集をわかりやすく解説します!
プログラミング言語はpythonです。
今回はCランク相当の以下の問題を解説します。
他のレベルアップ問題集の解答と解説も紹介しているので
ぜひご参考ください!
またpaizaの各ランクの攻略法は
こちらで詳しく紹介しているので、ぜひご参考ください!
単語のカウント (paizaランク C 相当)の解答と解説
今回の問題は「単語のカウント (paizaランク C 相当)」です。
問題はこちらからご確認ください。
この問題を解くのに必要な知識は3つです。
- 半角スペース区切りの入力をリストで受け取る
- 単語の出現回数をカウント
- 出現する順に結果を出力
それぞれ詳しく解説します。
半角スペース区切りの入力をリストで受け取る
まずは「半角スペース区切りの入力をリストで受け取る」です。
今回の問題では複数の英単語が
半角スペース区切りで1行で入力され、
それぞれの英単語の出現回数をカウントします。
そのためリストを使って各入力を受け取ります。
# 半角スペース区切りの入力をリストで受け取る
words = input().split()
リストと標準入力ついては、こちらをご参考ください!
単語の出現回数をカウント
次は「単語の出現回数をカウント」です。
まずは単語をカウントするための辞書を作成します。
# カウントするための辞書
word_dic = {}
辞書についてはこちらをご参考ください!
各英単語に対して処理を行います。
# 入力を受け取ったリストに対してfor文を使う
for word in words:
# 各英単語に対する処理を書く
for文についてこちらをご参考ください!
次に各英単語に対して
「各英単語が辞書に存在するか」でif文を使って条件分岐を行います。
# 入力を受け取ったリストに対してfor文を使う
for word in words:
if word in word_dic:
# 存在する場合
else:
# 存在しない場合
if文についてはこちらをご参考ください!
そして存在する場合は
その英単語がキーの要素の値を1増やし
存在しない場合は
その英単語をキーとして値が1
の要素を辞書に追加します。
# 入力を受け取ったリストに対してfor文を使う
for word in words:
# 存在する場合
if word in word_dic:
# 値を1増やす
word_dic[word] += 1
# 存在しない場合
else:
# 新たに要素を追加
word_dic[word] = 1
出現する順に結果を出力
最後は「出現する順に結果を出力」です。
辞書には各単語が出現順に格納されているので
辞書の各要素のキーと値をfor文を使って出力します。
# 各要素のキーと値を出現順に出力
for key, value in word_dic.items():
print(key, value)
辞書とfor文については、こちらをご参考ください!
単語のカウント (paizaランク C 相当)の解答
まとめると「単語のカウント (paizaランク C 相当)」の解答は以下です。
# 半角スペース区切りの入力をリストで受け取る
words = input().split()
# カウントするための辞書
word_dic = {}
# 入力を受け取ったリストに対してfor文を使う
for word in words:
# 存在する場合
if word in word_dic:
# 値を1増やす
word_dic[word] += 1
# 存在しない場合
else:
# 新たに要素を追加する
word_dic[word] = 1
# 各要素のキーと値を出現順に出力する
for key, value in word_dic.items():
print(key, value)
今回の問題は
といった高ランクでも頻繁に使用する基本文法を
全て使用しました。
特に辞書を使ったカウントの方法は
他の問題でも使用するのでぜひ覚えておきましょう!
まとめ
今回はpaizaのスキルチェックのレベルアップ問題集の中で
- 単語のカウント (paizaランク C 相当)
の解答と解説を紹介しました。
Dランクの問題に比べて、コードが複雑になります。
そのためコードを書き始める前に
頭の中で処理の流れをイメージをしてから書いていくのがおすすめです!
また他のレベルアップ問題集の問題についての解説も、ぜひご参考ください!