見出し画像

アイズオンラインジャッジメント(AOJ)のプログラムコード置き場(C#) [ITP1_9]

こんにちは。シジミです。

この記事はAOJで回答したコードを随時置いていきます。

構成としまして、以下のように三弾構成にしています。

環境はvisual sutadio 2019、言語はC#です。

問題:ITP1_9_A

解説:Listに取り込んであげて、そのリスト内で一致する単語をCountしています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace ITP_1_9A
{
    class Program
    {
        static void Main(string[] args)
        {

            var N = Console.ReadLine();
            List<string> S = new List<string>();

            string line;
            while (( line = Console.ReadLine())!= "END_OF_TEXT")
            {
                S.AddRange( line.Split(' ').ToList());
            }

            Console.WriteLine(S.Count(x => x.ToLower()==N.ToLower()));
            return;
        }
    }

}

問題:ITP1_9_B

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace ITP_1_9B
{
    class Program
    {
        static void Main(string[] args)
        {
            int n,i,j;
            n = i = j = 0;

            string str = "";
            string line = "";
            while (( line = Console.ReadLine())!= "-")
            {
                if (!int.TryParse(line, out n))
                {
                    str = line;
                }
                else if (i==1)
                {
                    j = n+1;
                }
                else if(i>1)
                {
                    string strage = str.Substring(0, n);
                    int length = str.Length-n;
                    str = str.Substring(n, length);
                    str += strage;
                }

                if (i ==j && i!=0)
                {
                    Console.WriteLine(str);
                    i = -1;
                }
                i++;
            }
            return;
        }
    }
}

問題:ITP1_9_C

解説:Compareメソッドを使うと辞書順の比較ができます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace ITP_1_9C
{
    class Program
    {
        static void Main(string[] args)
        {
            var N = Console.ReadLine().Trim().Split(' ').Select(s => int.Parse(s)).ToArray();

            int a, b;
            a = b = 0;

            for (int i = 0; i < N[0]; i++)
            {
                var battle = Console.ReadLine().Trim().Split(' ').ToArray();

                if (string.Compare(battle[0],battle[1]) == -1)
                {
                    b+=3;
                }
                if (string.Compare(battle[0],battle[1]) == 0)
                {
                    a++;
                    b++;
                }
                if (string.Compare(battle[0],battle[1]) == 1)
                {
                    a += 3;
                }
            }
            Console.WriteLine("{0} {1}", a,b);

            return;
        }
    }

}

問題:ITP1_9_D

解説:C++のreplaceメソッドと同じような動きをsubstrongメソッドを使って再現しています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace ITP_1_6A
{
    class Program
    {
        static void Main(string[] args)
        {
            var S = Console.ReadLine().Trim().Split(' ').ToArray();
            var N = Console.ReadLine().Trim().Split(' ').Select(s => int.Parse(s)).ToArray();

            char[] str = S[0].ToCharArray();
            string str_ = "";

            int a, b;
            a = b = 0;

            for (int i = 0; i < N[0]; i++)
            {
                var order = Console.ReadLine().Trim().Split(' ').ToArray();
                a = int.Parse(order[1]);
                b = int.Parse(order[2]);

                if (order[0] == "print")
                {
                    str_ = new string(str);
                    Console.WriteLine(str_.Substring(a, b - a + 1));
                }
                else if (order[0] == "reverse")
                {
                    Array.Reverse(str,a,b-a+1);
                }
                else if (order[0] == "replace")
                {
                    str_ = new string(str);
                    str_ = str_.Substring(0, a) + order[3] + str_.Substring(b+1, str_.Length-1-b);
                    str = str_.ToCharArray();
                }

            }

            return;
        }
    }

}

この記事が気に入ったらサポートをしてみませんか?