[C#] 백준 1316번 그룹 단어 채커

2021. 12. 19. 01:11C#/[백준] 문자열

using System;
using System.Collections.Generic;
namespace _10
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int count = 0;
            for (int k = 0; k < n; k++)
            {
                string input = Console.ReadLine();
                List<string> array = new();
                if (input.Length == 1)
                    array.Add(input[0].ToString());
                else if (input.Length >= 2)
                {
                    array.Add(input[0].ToString());
                    array.Add(input[1].ToString());
                }
                for (int i = 2; i < input.Length; i++)
                {
                    if (input[i - 1].ToString() == input[i].ToString())
                    {
                        array.Add(input[i].ToString());
                    }
                    if (input[i - 1].ToString() != input[i].ToString())
                    {
                        if (array.Contains(input[i].ToString()))
                        {
                            break;
                        }
                        else
                        {
                            array.Add(input[i].ToString());
                        }
                    }
                }
                string text = string.Join("", array.ToArray());
                if (text == input)
                    count += 1;
            }
            Console.WriteLine(count);
        }
    }
}

happy라는 단어를 예로 들자면 먼저 input은 happy고 첫번째 문자와 두번째 문자는 바로 array에 넣는다

input = happy, array = ha 이다.

그 다음 오는 글자는 p이고 이게 array안에 있는지 없는지 체크해서 없으면 넣는다(array = hap)

이런식으로 array = happy를 만든다. input과 비교하여 같다면 즉, array이 전부 고유하다면 count하는 방식이다.

다른 예로, aba를 들자면

array에 ab를 넣고 그 다음글자인 a가 array안에 있는지 판단했을 때 있다고 한다면 이전 글자와 같은건지 아니면 그 전 글자중의 하나랑 같은지를 판단한다. a는 연속이 아니므로 array에 들어가지 못한다.

따라서 array은 ab가 되고 input과 다르므로 이건 count하지 않는다.

'C# > [백준] 문자열' 카테고리의 다른 글

[C#] 백준 2941번 크로아티아 알파벳  (0) 2021.12.19
[C#] 백준 5622번 다이얼  (0) 2021.12.19
[C#] 백준 2908번 상수  (0) 2021.12.19
[C#] 백준 1152번 단어의 개수  (0) 2021.12.19
[C#] 백준 2675번 문자열 반복  (0) 2021.12.19