[C#] 백준 1316번 그룹 단어 채커
2021. 12. 19. 01:11ㆍC#/[백준] 문자열
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 |