トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

CODE FESTIVAL 2016予選B A Signboard

■■■問題■■■

CODE FESTIVAL 2016が開催されます。
開催にあたって、高橋君はCODE FESTIVAL 2016の看板を作ることにしました。

看板にはCODEFESTIVAL2016と書きたかったのですが、
高橋君は間違えて異なる文字列Sを書いてしまいました。
幸い、書いた文字列の長さは間違っていませんでした。

そこで高橋君は、ある文字を別の文字に書き換えるという操作を最小の回数行って、
この文字列をCODEFESTIVAL2016に書き換えることにしました。

書き換えの回数の最小値を求めてください。

■■■入力■■■

S

●Sの長さは16である。
●Sは英大文字、英小文字、数字からなる。

■■■出力■■■

書き換えの回数の最小値を表す整数を出力せよ。


C#のソース

using System;
using System.Collections.Generic;

class Program
{
    static string InputPattern = "InputX";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("C0DEFESTIVAL2O16");
            //2
            //2文字目の0をOに、14文字目のOを0に書き換える必要があります
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("FESTIVAL2016CODE");
            //16
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        string S = InputList[0];

        int Answer = 0;
        string wkStr = "CODEFESTIVAL2016";
        for (int I = 0; I <= wkStr.Length - 1; I++) {
            if (wkStr[I] != S[I]) Answer++;
        }
        Console.WriteLine(Answer);
    }
}


解説

違う文字数をカウントしてます。