ねむーの日記~AtCoderな日々~

福岡に住むプログラミング好きのブログです!

【プログラミングコンテスト】AtCoder Beginner Contest 119②

研究室のレイアウト変更で机を運んで筋肉痛になりました、ねむーです。

今回はAtCoder(https://atcoder.jp/contests/abc119/)にて開催されました、AtCoder Beginner Contest 119の第2回目です。

今回は、第2問「B - Digital Gifts」の問題と僕との戦闘記です。

0.はじめに

今回も、プログラミング言語C#を使用しています。

1.問題文

高橋くんは N 人の親戚からお年玉をもらいました。

N 個の値 x 1 , x 2 , . . . , x N と N 個の文字列 u 1 , u 2 , . . . , u N が入力されます。各文字列 u i は JPY または BTC であり、 x i と u i が i 人目の親戚からのお年玉の内容を表します。

例えば、 x 1= 10000, u 1= JPY であれば 1 人目の親戚からのお年玉は 10000 円であり、 x 2= 0.10000000, u 2= BTC であれば 2 人目の親戚からのお年玉は 0.1 ビットコインです。

ビットコインを 1.0 BTC あたり 380000.0 円として換算すると、高橋くんがもらったお年玉は合計で何円に相当するでしょうか?

2.入力例

入力

入力は以下の形式で標準入力から与えられる。

N
x_1 u_1
x_2 u_2
…
x_N u_N

出力

高橋くんが受け取ったお年玉が合計で Y 円に相当するとき、値 Y (整数とは限らない) を出力せよ。

3.初見の感想

  • 文字列判定を使ってJPYの時とBTCの時で処理を分ける必要がありそうです
  • C#ではstringのEqualsで文字列一致判定できます
  • ビットコインは小数点以下の値なのでdouble型を用いる必要がありそうです
  • BTCだけでなくJPYもdouble型に統一しましょう

4.本番解いた時の感想

  • 10分ほどで解けました!

    5.全コード

 class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(System.Console.ReadLine());
            double sum = 0;
            for (int i = 0; i < N; i++)
            {
                string[] temp = System.Console.ReadLine().Split(' ');
                double num = double.Parse(temp[0]);
                string type = temp[1];
                if (type.Equals("BTC")) { num = num * 380000; }
                sum += num;
            }
            System.Console.WriteLine(sum);
        }
    }

6.最後に

僕はだんだんコードを書く速度が上がってきて成長を感じています(^^)

AtCoderライフはよいものですね!