【ページ更新日:2020年10月23日】
毎日Pythonでは、簡単なPythonのプログラムコードを紹介していきます。
今日のプログラムはAtCorder2019の問題を使用しています。
競技用プログラミングの問題になります。
問題
問題は次のとおりです。
ある商品のN日間の売上が整数列A1,A2,…,ANとして与えられる。Ai(1≦i≦N)がi日目の売上を表す。
あなたは、2日目以降の各日について、その日の売上が前日の売上よりどれだけ高かったか (あるいは低かったか) を出力するプログラムを作成することにした。
より具体的には、プログラムはN−1行を出力し、i行目(1≦i≦N−1)の内容は次の通りである。
Ai+1がAiと等しい場合:stay
Ai+1がAiより小さい場合: down [減少量]
(※ここで [減少量] は整数値 Ai − Ai+1)
Ai+1がAiより大きい場合: up [増加量]
(※ここで [増加量] は整数値 Ai+1 − Ai)このプログラムを作成せよ。
AtCorder 第一回アルゴリズム実技検定過去問2019年12月B問題
プログラムコード
問題の解答となるコードは次のとおりです。
※間違いの指摘やアドバイスなどあれば教えてください。
N = int(input("日数を入力してください >>> ")) list = [] for i in range(N): list.append(int(input())) for i in range(N-1): if list[i+1]==list[i]: print("stay") elif list[i+1]>list[i]: print("up [{}]".format(list[i+1]-list[i])) else: print("down [{}]".format(list[i]-list[i+1]))
ポイント
今回のPythonコードのポイントは次の3点です。
- list = [ ]
- list.append( )
- format( )
list = [ ]
これは、リスト型の変数を変数名「list」、要素「空(要素なし)」で宣言しているコードです。
複数の要素をまとめて扱うことができる変数の型
下記のようにすると、リスト型の変数を変数名「items」、要素「1,2,3,4」で作成します。
items = [1, 2, 3, 4]
list.append( )
appendメソッドは、リストクラスのメソッドです。
appendメソッドは、引数をリストに追加します。
appendメソッドを使うときは、手前にリスト名を書きます。
appendメソッドの後には、リストに追加したいものを引数に入れます。
# リスト「check_list」を作成 check_list = [1,2,3,4,5] print(check_list) # => [1,2,3,4,5] # appendメソッドで要素「10」を追加する check_list.append(10) print(check_list) # => [1,2,3,4,5,10]
format( )
formatメソッドは、strクラスのメソッドになります。
文字列の途中に、変数の値や文字列を埋め込むことができます。
print("up [{}]".format(list[i+1]-list[i]))
上記のコードのように、文字列中に{ }を書き、そこに埋め込む値を文字列のあとにformatメソッドの引数として与える。
下記のようにすると、複数の値を文字列中に埋め込むことができます。
print("1,2,3,{},5,6,{},8,9,{}".format(4,7,10))
formatメソッドの引数を順番どおりに、{}に入れていきます。