[アルゴリズム]白準2822-([:]の浅いコピーを用いる)


問題のソース
https://www.acmicpc.net/problem/2822
コード#コード#
num_list = []
total = 0
for _ in range(8):
    n = int(input())
    num_list.append(n)

chk_list = num_list[:]
num_list.sort(reverse=True)

for i in range(5):
    total += num_list[i]
print(total)

result_list = []
for i in range(5):
    for j in range(8):
        if num_list[i] == chk_list[j]:
            result_list.append(j+1)

result_list.sort()
for i in range(5):
    print(result_list[i], end=' ')
メモ
スコアを入力してソートしたスコアリストと、入力したスコアリストを2つに分けて問題に近づけます.そこでnumリストを入力すると、最初にchkリスト=numリストをコピーしようとします.以下のようにします.でもそうするとnum listsort()を行うとchk listも変更されます.調べてみましたが、深い放射線が発生したからです.浅いレプリケーションを行うためには,上記のコードのように[:]を用いることができる.