그냥 뭐... 문자열 연산(각 원소별 2배) 후 같은지 비교해주면 된다.
따로 함수 구현해두고 true, false 반환값에 따라
Eyfa와 Not Eyfa 를 출력해주도록 한다.
using System.Text;
namespace SongE
{
class Program
{
static bool Eyfa(string input, Stack<char> result)
{
for(int i = input.Length -1 ; i >= 0; i--)
{
if(result.TryPop(out char a))
if(result.TryPop(out char b))
{
if(a != b)
return false;
if (a != input[i])
return false;
}
}
if(result.Count != 0) return false;
return true;
}
private static void Main(string[] args)
{
int[] nm = Array.ConvertAll(Console.ReadLine().Split(), x => int.Parse(x));
string[] input = new string[nm[0]];
string[] result = new string[nm[0]];
for(int i = 0; i < nm[0]; i++)
input[i] = Console.ReadLine();
for(int i = 0; i < nm[0]; i++)
result[i] = Console.ReadLine();
for(int i = 0; i < nm[0]; i++)
{
string inp = input[i];
Stack<char> stack = new(result[i]);
if(!Eyfa(inp, stack))
{
Console.WriteLine("Not Eyfa");
return;
}
}
Console.WriteLine("Eyfa");
}
}
}
사실 입력을 n과 m을 제외하고
모든 입력을 받은 뒤에, 엔터를 기준으로 split하여 배열에 넣어준 뒤,
원소의 수의 절반의 앞부분은 입력, 뒷부분은 결과물로 하여
Eyfa를 하면
굳이 for문을 여러번 쓰지 않아도 된다.