AtCoder Beginner Contest 124 A - Buttons
昨日はTOEICを受けてきて長文アレルギーを再認識しました、ねむーです。
今回はAtCoder(https://atcoder.jp/contests/abc124)にて開催されました、AtCoder Beginner Contest 124 A問題「A - Buttons」の問題と僕との戦闘記です。
0.はじめに
1.問題文
2 個のボタンがあり、大きさはそれぞれ A , B です。
大きさ X のボタンを押すと、 X 枚のコインを獲得し、そのボタンの大きさが 1 小さくなります。
あなたは、いずれかのボタンを押すことを 2 回行います。 同じボタンを 2 回押しても構いません。
最大で何枚のコインを獲得できるでしょうか。
2.制約
- 入力は全て整数である。
- 3 ≤ A , B ≤ 20
3.入力例
- 入力
6 6
- 出力
12
4.初見の感想
- 基本的には大きいボタンを連続で押しておけばよさそう(1しか減らないので)
- 両方同じ高さの時は両方を押した方がよさそう
5.学びポイント
- 僕はifで条件分岐しましたが、Max関数を使う方法もあるようですね!
6.コードの簡単な解説
- まず、入力の値のパースを行う
string[] input = Console.ReadLine().Split(' '); int[] button = new int[2]; button[0] = int.Parse(input[0]); button[1] = int.Parse(input[1]);
- ボタン1が大きい時はボタン1を連続で押す
if (button[1]>button[0]) { Console.WriteLine(2*button[1]-1); }
- ボタンが同じ高さなら両方押す
else if(button[1] == button[0]) { Console.WriteLine(2 * button[1]); }
- ボタン0が大きい時はボタン0を連続で押す
else { Console.WriteLine(2 * button[0] - 1); }
7.全コード
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { string[] input = Console.ReadLine().Split(' '); int[] button = new int[2]; button[0] = int.Parse(input[0]); button[1] = int.Parse(input[1]); if (button[1]>button[0]) { Console.WriteLine(2*button[1]-1); } else if(button[1] == button[0]) { Console.WriteLine(2 * button[1]); } else { Console.WriteLine(2 * button[0] - 1); } } }
8.最後に
この問題は2:50で解けたので上出来かな?と思ってます