[白俊]1461-グリディ(図書館)
6584 ワード
問題を解く
質問https://www.acmicpc.net/problem/1461
複数の入力を把握してリストを作成する方式
n, m = map(int, input().split())
points = list(map(int, input().split()))
plus=[]
minus=[]
for i in points:
if i>0:
plus.append(i)
else:
minus.append(i)
plus.sort(reverse=True)
minus.sort()
max_distance=0
for i in points:
if abs(i)>abs(max_distance):
max_distance=i
max distanceを0に設定し、リストのベンド値が0より大きい場合は更新します.distance=[]
for i in range(0, len(plus), m):
if plus[i] != max_distance:
distance.append(plus[i])
for i in range(0, len(minus), m):
if minus[i] != max_distance:
distance.append(minus[i])
result = abs(max_distance)
for i in distance:
result += abs(i*2)
print(result)
の最後の部分
これまで解いたアルゴリズム問題の中で,最も複雑である.(初心者の話題ㅠㅠ)
コードを書きながらabs()を繰り返したくないので、最初から負の値を作っていたときからabsと書いていたら、間違った答えが出てしまいました.
私のコードが間違っているのか、何が正しいのかを確認して更新します.
Reference
この問題について([白俊]1461-グリディ(図書館)), 我々は、より多くの情報をここで見つけました https://velog.io/@shs131/백준1461-그리디도서관テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol