AtCoder Beginners Selection から始めてみようとしています。
https://atcoder.jp/contests/abs
標準入力
// 文字列の入力
string s = Console.ReadLine();
// 整数の入力
long n = long.Parse(Console.ReadLine());
// 文字列配列の入力
string[] inputStrArray = Console.ReadLine().Split(' ');
// 整数配列の入力
long[] inputLongArray = Console.ReadLine().Split(' ').Select(i => long.Parse(i)).ToArray();
int[] array = Console.ReadLine().Split().Select(int.Parse).ToArray();
配列の初期化
// 配列を生成する
var array = new int[] {0, 2, 4, 6};
// [0,1...] の配列を生成する
var array = Enumerable.Range(0, 5).ToArray(); // {0, 1, 2, 3, 4}
// 初期値が全て同じ配列を生成する
var array = Enumerable.Repeat(-1, 5).ToArray(); // { -1, -1, -1, -1, -1}
繰り返し for
using System;
namespace Challenge
{
class ChallengeCsFor
{
public static void Main()
{
int n = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 0; i < n - 1; i++)
{
int value = int.Parse(Console.ReadLine());
sum = sum + value;
Console.WriteLine($"sum={sum}");
}
}
}
}
条件分岐 if else
using System;
namespace Challenge
{
class ChallengeCsIf
{
static void Main(string[] args)
{
var s = Console.ReadLine();
if (int.TryParse(s, out var result))
{
Console.WriteLine(result);
}
else
{
Console.WriteLine("整数に変換できません");
}
}
}
}
例外処理
using System;
namespace Challenge
{
class ChallengeCsError
{
static void Main(string[] args)
{
var s = Console.ReadLine();
try
{
Console.WriteLine(int.Parse(s));
}
catch
{
Console.WriteLine("整数に変換できません");
}
}
}
}
ソート
using System;
using System.Linq;
namespace Challenge
{
class ChallengeCsSort
{
public static void Main(string[] args)
{
int[] array = Console.ReadLine().Split().Select(int.Parse).ToArray();
Array.Sort(array);
foreach (int element in array)
{
Console.WriteLine(element);
}
}
}
}
では始めてみます
C#でAtCoder Beginners Selection(ABC086A - Product)
C#でAtCoder Beginners Selection(ABC081A - Placing Marbles)
C#でAtCoder Beginners Selection(ABC081B - Shift only)
C#でAtCoder Beginners Selection(ABC087B - Coins)
C#でAtCoder Beginners Selection(ABC083B - Some Sums)
C#でAtCoder Beginners Selection(ABC088B - Card Game for Two)
C#でAtCoder Beginners Selection(ABC085B - Kagami Mochi)
C#でAtCoder Beginners Selection(ABC085C - Otoshidama)
C#でAtCoder Beginners Selection(ABC049C - 白昼夢)
C#でAtCoder Beginners Selection(ABC086C - Traveling)
参考
天才プログラマー2人が語る、高度IT人材の採用のポイントとは?
AtCoder Beginner Contest 042
https://atcoder.jp/contests/abc042
AtCoder Beginner Contest 043
https://atcoder.jp/contests/abc043
ピューマ本
最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド
螺旋本
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
競技プログラミングのための C# (4.0 以降) の Tips 詰め合わせ
https://emkcsharp.hatenablog.com/entry/2013/Advent
初心者がC#でAtCoderデビューするためのVSProjectテンプレート
https://qiita.com/sekikatsu/items/93c41c6c937ed1dfcf23
AtCoderで使えそうなC# 7.0~8.0の新機能
https://www.terry-u16.net/entry/csharp-7-8-new-features-for-atcoder