トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
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);
}
}
解説
違う文字数をカウントしてます。