技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

競技プログラミング day10

require "pry"
# ----------------------------------------------------------
# ■ 問題
# https://atcoder.jp/contests/abc115/tasks/abc115_b

# ■ 前提条件
# 1. 高羽はN個の商品を購入しようとしている
# 2. N個の中で一番高い商品を低下の半額で購入することができる


# ■ 制約
# 1. 2<= N <= 10
# 2. 100 <= Pi <= 10000
# 3. Piて整数

# ■ 流れ説明
# 1. 入力値を受け取る(N)
# 2. 個別商品の値段をそれぞれ入力(N個分)
# 3. 全商品の合計値を算出
# 4. 一番高い値段を半額にして合計力引く

# ■入力例
# 3
# 4980
# 7980
# 6980

# ■ 出力例
# 15950

# ■ 工夫箇所

# ----------------------------------------------------------

# 1. 入力値を受け取る(N)
N = gets.to_i

# 2. 個別商品の値段をそれぞれ入力(N個分)
value = []
N.times do
  value.push(gets.to_i)
end

# 3. 全商品の合計値を算出
# 4. 一番高い値段を半額にして合計力引く
puts (value.inject(&:+) - (value.max / 2))