【プログラミングコンテスト】AtCoder Beginner Contest 119②
研究室のレイアウト変更で机を運んで筋肉痛になりました、ねむーです。
今回はAtCoder(https://atcoder.jp/contests/abc119/)にて開催されました、AtCoder Beginner Contest 119の第2回目です。
今回は、第2問「B - Digital Gifts」の問題と僕との戦闘記です。
0.はじめに
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ライフはよいものですね!