5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

この記事では、paiza×Qiitaの記事投稿キャンペーンの一環として、筆者が初めてpaiza Dランク問題を解いた頃(2021年4月)を振り返り、自分なりのプログラミング学習方法についてまとめます。

筆者がプログラミングに興味を持つきっかけとなったのはpaizaであり、その3ヶ月後(2021年6月)にQiitaの執筆を始め、色々と試行錯誤していた記憶があります。そのため、本記事は paizaとQiitaを通じて初めてプログラミングに挑戦した経験(paiza×Qiita×経験談) を元にしています。

この記事は、Dランクではじめてpaizaのプログラミング問題を解こうとしている方を対象としています。

解答例

まずは、Dランク問題の解答例を紹介します。言語はPython 3を使用します。

N倍の文字列

n = int(input())
print("*" * n)

Eメールアドレス

local = input()
domain = input()
email_address = f"{local}@{domain}"
print(email_address)

足し算

ab_map = map(int, input().split())
ab_sum = sum(ab_map)
print(ab_sum)

一番小さい値

n_list = [int(input()) for _ in range(5)]
n_min = min(n_list)
print(n_min)

文字の一致

moji_a = input()
moji_b = input()

if moji_a == moji_b:
    print("OK")
else:
    print("NG")

学習方法

ここでは、個人的に思うpaizaを活用したプログラミング学習方法を紹介します。

別解を用いた学習

プログラミング問題の解法は一通りではありません。入力と出力さえ合っていれば、その間は自由にコーディングできます。paizaでは一度解いた問題を何度でもチャレンジできるので、自分なりの解法を考えると楽しく学べます。

例えば、以下のコードは一番小さい値を求めるものです。

n_list = [int(input()) for _ in range(5)]
n_min = min(n_list)
print(n_min)

これを別の方法で実装することもできます。

n_min = float("inf")
for _ in range(5):
    n_i = int(input())
    if n_i < n_min:
        n_min = n_i
print(n_min)

このように別解を考えることで、if文の使い方やPythonの最大値の表記方法などを学ぶことができます。問題に合わせた最適な解法を模索することも学習の一環です。

汎用化を求めた学習

paizaの問題では、入力条件が与えられ、その条件を満たすようにコーディングします。Dランクでは限定的な値の範囲が多いですが、Cランク以上になると汎用性が求められます。

以下は、足し算の問題を汎用的にコーディングした例です。

汎用的
ab_map = map(int, input().split())
ab_sum = sum(ab_map)
print(ab_sum)

一方、以下は汎用性を意識しないコードです。

汎用的でない
a, b = map(int, input().split())
print(a + b)

汎用性を意識したコードは、任意の入力に対応できるため、より幅広いシーンで活用できます。

paizaを通して、このような汎用化について学ぶことができます。

美しさを追求した学習

美しさを意識したコーディングも重要です。最初は難しいかもしれませんが、PEP8を参考にすることで、可読性の高いコードを書けるようになります。(PEP8についてはPEP8について簡単にまとめてみた!も参考になります。)

例えば、一番小さい値のコードを見てみます。

n_list = [int(input()) for _ in range(5)]
n_min = min(n_list)
print(n_min)

このコードでは、_を使用しています。_は使用しない変数を明示的に示す際に使う慣習があります。最初は知らないことも多いかもしれませんが、調べたり、実際にコードを書いていく中で自然に身についていきます。

実際、筆者もpaiza学習3ヶ月頃にQiitaで記事を投稿した際、コメントで_の使い方を教えていただいた経験があります。

このようにpaiza×Qiitaの組み合わせは、プログラミング学習の場として最適だと思います。

まとめ

この記事では、筆者の初めてのpaiza Dランク問題への取り組みと、プログラミング学習の方法について紹介しました。別解を考えること、汎用性を意識すること、コードの美しさを追求することが、学習をより深めるポイントだと思います。paizaとQiitaの組み合わせを活用し、楽しく効果的にプログラミングスキルを向上させましょう。

5
1
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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?