pandasでpaiza問題(二重ループ:基本編 積の最大)

スポンサーリンク

paizaへのリンク(二重ループ:基本編 積の最大 (paizaランク D 相当)

掛け算のマトリックス(九九の表のようなもの)を作って、そこから範囲指定で最大値を抜き出す方法を探したのだが見つからなかった。仕方ないので別のDataFrameを作ってそこから最大値を抜き出している。pandasを使わなければもっと早く簡単に出来るが、あくまでpandasの練習のための参考コード。

import pandas as pd

n, k = [int(_) for _ in input().split()]
lst1 = [int(_) for _ in input().split()]
lst2 = [int(_) for _ in input().split()]

lst1.insert(0, 0)

df = pd.DataFrame(lst1).T
df = df.append(lst2)
df = df.reset_index(drop=True)

for i in range(n): # 答えには関係ない掛け算のマトリックス
    lst_tmp = []
    for j in range(k):
        df.iat[j + 1, i + 1] = df.iat[0, i + 1] * df.iat[j + 1, 0]

lst3 = []

for i in range(n): # 計算結果だけを表示するリストを作成
    lst_tmp = []
    for j in range(k):
        tmp = df.iat[0, i + 1] * df.iat[j + 1, 0]
        lst_tmp.append(tmp)
    lst3.append(lst_tmp)

df2 = pd.DataFrame(lst3) # リストからdf2を作成

lst_max = df2.max()
print(int(max(lst_max)))

コメント

当ブログのコンテンツが気に入ったら広告ブロックの解除(ホワイトリスト化)をご検討下さい。

Please disable your adblocker or whitelist this site!

タイトルとURLをコピーしました