
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Pythonの基礎文法知識と基本的なアルゴリズムを問うコーディング演習30問のセットです。
型の理解
繰り返し処理
条件分岐
演算子の使い分け
文字列操作
リスト操作
辞書操作
関数定義
例外処理
クラス定義
ラムダ式
こんな問題が出ます。
初級レベルの例題1:
以下の要件を満たす関数find_longest_word(sentence)を実装してください。
文章の中で最も長い単語を文字列として返す。
文章は引数sentenceとして渡される。
単語の区切りは半角スペースとする。
最長の単語が複数ある場合は、最初に現れた単語を返す。
出力結果の例:
print(find_longest_word("Python is a programming language")) # programming
print(find_longest_word("Hello World")) # Hello
print(find_longest_word("One two three four five")) # three
初級レベルの例題2:
あなたは数学者のアシスタントとして働いています。ある日、上司から与えられた整数が素数かどうかを判定するプログラムを作成するよう依頼されました。
上司の指示に従い、整数を入力すると、その数が素数かどうかを判定する関数is_primeを実装してください。
関数の要件は以下の通りです。
引数numには判定したい整数を指定する
numが素数の場合は Prime 、素数でない場合は Not Prime と出力する
素数の定義は以下の通り
1とその数自身以外の正の約数を持たない自然数
2は唯一の偶数の素数
1は素数ではない
出力結果の例:
is_prime(17) # Prime
is_prime(18) # Not Prime
is_prime(19) # Prime
中級レベル例題1:
整数のリスト nums が与えられたとき、連続する部分配列で得られる最大の積を返す関数 max_product_subarray(nums) を作成してください。
部分配列とは、リストから一部の連続した要素を取り出したものです。
[2, -5, -2, -4, 3] というリストがあった場合、例えば2, -5, -2は連続していますが、-5と-4の2つは(間に-2があるため)連続していません。
このように連続している数値を乗算して得られる最大の値を求めてください。
出力結果の例:
nums = [2, 3, -2, 4] の場合、最大の積 6 を返します。 (2*3)
nums = [-2, 0, -1] の場合、最大の積 0 を返します。(-2*0および0*-1)
nums = [2, -5, -2, -4, 3] の場合、最大の積 24 を返します。(-2*-4*3)
中級レベル例題2:
あなたは空港の搭乗橋の割り当てを管理する役割を担っています。到着する航空機には、それぞれ到着時刻と離陸時刻が設定されています。
限られた数の搭乗橋を効率的に使用するために、各航空機に適切な搭乗橋を割り当てる必要があります。
以下の条件において必要最小限の搭乗橋数(整数)を返すassign_boarding_gates(flight_schedules)関数を作成してください。
空港には複数の搭乗橋があり、それぞれ独立して使用できます。
航空機が到着してから離陸するまでの間、搭乗橋を占有します。
2機以上の航空機が同時に1つの搭乗橋を使用することはできません。
最小の搭乗橋数で、すべての航空機に搭乗橋を割り当てる必要があります。
各航空機の到着時刻と離陸時刻はタプルのリストで渡します。
[(6, 8), (9, 12)]であれば[0]の到着時刻は6時・出発時刻は8時、[1]の到着時刻は9時・出発時刻は12時です。
出力結果の例:
flight_schedules1 = [(6, 8), (9, 12), (7, 10), (11, 14)]
print(assign_boarding_gates(flight_schedules1)) # 出力: 2
flight_schedules2 = []
print(assign_boarding_gates(flight_schedules2)) # 出力: 0
flight_schedules3 = [(1, 2)]
print(assign_boarding_gates(flight_schedules3)) # 出力: 1
flight_schedules4 = [(1, 2), (3, 4), (5, 6)]
print(assign_boarding_gates(flight_schedules4)) # 出力: 1
flight_schedules5 = [(1, 3), (2, 4), (5, 7), (6, 8)]
print(assign_boarding_gates(flight_schedules5)) # 出力: 2
中級レベルの例題3:
あなたは小売店のチェーンで働いており、店舗の在庫管理システムを改善する役割を任されました。各店舗の在庫データを処理し、適切な注文量を計算する関数 calculate_order_quantity(inventory_data) を実装する必要があります。
この関数は、店舗の在庫データを表すリストを受け取り、キーに「注文すべき商品」値が「注文量」の辞書を返します。
在庫データは、以下の形式の辞書をリストで与えます。
'name': 商品名 (文字列)
'stock': 現在の在庫数 (整数)
'minimum': 最小在庫数 (整数)
'maximum': 最大在庫数 (整数)
注文量の計算ルールは以下の通りです:
在庫数が最小在庫数を下回っている商品は、最大在庫数までの量を注文する必要があります。
在庫数が最大在庫数を超えている商品は、注文する必要はありません。
在庫数が最小在庫数以上最大在庫数以下の商品は、注文する必要はありません。
出力結果の例:
inventory_data = [
{'name': 'Item A', 'stock': 10, 'minimum': 20, 'maximum': 50},
{'name': 'Item B', 'stock': 25, 'minimum': 15, 'maximum': 30},
{'name': 'Item C', 'stock': 5, 'minimum': 10, 'maximum': 20}
]
print(calculate_order_quantity(inventory_data)) # 出力: {'Item A': 40, 'Item C': 15}