【ABC171 B】「Mix Juice」を解く【Python3】

「AtCoder」解説一覧へ

N個の果物のうち、K種類を一個ずつ買うとき、合計の最小金額を求める問題です。

提出
n, k = map(int, input().split())
p = list(map(int, input().split()))

p.sort()
print(sum(p[:k]))

入力はすべて整数です。

pはリストにしておきます。

pをソートして、昇順にします。

金額の小さい果物から購入していけばいいので、スライス機能を用いてk個目までの果物のリストを作り、合計値を出力します。

合計はsum()で出せます。

split()メソッド

split()メソッドは、区切り文字を指定して、文字列を分割します。

区切り文字を指定しない場合、空白、タブ、改行で分割されます。

str.split("区切り文字")

map()関数

map()関数は、イテラブル(リストやタプルなど)の各要素に関数の処理を適用します。

map(関数、イテラブル)

sort()メソッド

sort()メソッドを用いることで、リストに含まれる要素を昇順に並び替えることができます。

「reverse=True」を指定することで、降順にすることができます。

l = [3, 1, 4, 5, 2]
l.sort()
# l = [1, 2, 3, 4, 5]
l.sort(reverse=True)
# l = [5, 4, 3, 2, 1]

スライス機能

スライスを用いてインデックスを指定すると、特定の範囲の文字列を取得することができます。

インデックスは0から始まることに注意です。

開始インデックスから終了インデックスの一つ前まで取得します。

s = "atcoder"
print(s[2:5])
# > "cod"

【ABC171】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です