競技プログラミング day7
問題
回答
# require "pry" # ---------------------------------------------------------- # ■ 問題 # https://atcoder.jp/contests/abc119/tasks/abc119_b # ■ 前提条件 # 1. 単価 -> JPY ot BTC # 2. 1.0 BTC = 380000.0円 # ■ 制約 # JPY -> 1 ≤ x i ≤ 10^8 # BTC -> 0.00000001 ≤ x i ≤ 100.00000000 # ■ 流れ説明 # 1. 入力値を受け付ける(何人の親戚からお年玉を受け取ったのか) # 2. 日本円で受け取ったのかBTCで受け取ったのかを判定 # 3. 日本円で受け取った合計値とBTCで受け取った合計値を計算するメソッドをそれぞれ作る # 4. BTCを日本円に換算するメソッドを作成 # 5. 日本円ベースで合計値を算出してputsする # ■入力例 # n = 2 # x1 = 10000, u1 = JPY # x2 = 0.10000000, u2 = BTC # ■ 出力例 # 48000.0 # ---------------------------------------------------------- # 1. 入力値を受け付ける(何人の親戚からお年玉を受け取ったのか) n = gets.chomp.to_i sum = 0 n.times { amount_money,type = gets.split # 2.日本円で受け取ったのかBTCで受け取ったのかを判定 # 3. 日本円で受け取った合計値とBTCで受け取った合計値を計算するメソッドをそれぞれ作る case type when "JPY" sum += amount_money.to_i when "BTC" # 4.BTCを日本円に換算 sum += amount_money.to_f * 380000 end } # 5. 日本円ベースで合計値を算出してputsする puts sum
学びポイント
N回数分だけ、XnとUnの入力値を受け取る方法に迷った。結局n.times
で実装は出来た。
感想
case文で条件分岐するのはよかったと思う。メソッドに切り分ける方法でもよかったかもしれない。
所有時間
30分