[11383]뚊

RudinP·2023년 6월 19일
0

BaekJoon

목록 보기
69/77

문제

  • 정우는 "뚊"과 "돌돔"을 의미하는 두 이미지를 받았다. 과연 두 그림이 같은지 검사해보자. 즉 N× M 크기의 이미지와 N ×2 M 크기의 이미지가 주어질 때 첫 번째 이미지를 가로로 두 배로 늘이면 두 번째 이미지가 되는지 검사하는 프로그램을 작성하라.

생각

그냥 뭐... 문자열 연산(각 원소별 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문을 여러번 쓰지 않아도 된다.

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글