🐙

【AtCoder解説】ABC088B - ABC Preparation を解いた記録

に公開

本記事は、AtCoder の問題を解いて得た知見を記録するための学習ログです。
毎回1問ずつ、「何を考えて解いたか」「どう実装したか」「学んだこと」を簡単にまとめていきます。

問題概要

降順でソートして奇数と偶数の差の全ての和を求める問題

解放とコード

n = int(input())
nums = [*map(int, input().split())]

nums.sort(reverse=True)
dif = 0
togle = 1
for num in nums:
  dif += togle * num
  togle *= -1
print(dif) 

set()

解きながら考えたこと・学んだこと・感じたこと

  • ソートが簡単
  • togleで実装したのはいい考えだと思った

AIの評価

  • 変数名を少し工夫するとより読みやすくなる

綺麗な回答

n = int(input())
cards = list(map(int, input().split()))
cards.sort(reverse=True)

score_diff = 0
sign = 1  # Alice: +1, Bob: -1

for card in cards:
    score_diff += sign * card
    sign *= -1

print(score_diff)

Discussion